<?php

namespace IZON\Thumber\Image;

use IZON\IO\RasterImageInterface;
use IZON\Thumber\ImageConfiguration\IImageConfiguration;

/**
 * IImageUrlBuilder
 * @author Aleš Kopecký <kopecky@izon.cz>
 */
interface IImageURLBuilder {

    /**
     * @param string $path
     */
    public function setPath(string $path);

    /**
     * Composes URL to image lazy generation controller based on given config.
     * @param IImageConfiguration $config
     * @return string
     */
    public function buildURL(IImageConfiguration $config): string;

    /**
     * Creates RasterImageInterface from parameters given in array
     * @param array $params
     * @return RasterImageInterface
     */
    public function getImage(array $params): RasterImageInterface;

}
