import { CssRenderer } from "./CssRenderer";
/**
 * Option for the css object that renders the image
 */
export interface ICssImageRenderOption {
    /**
     * image rendering mode (default: ImageRenderingMode.Pixelated)
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
     */
    imageRenderingMode: ImageRenderingMode;
}
/**
 * css image-rendering property enum
 */
export declare enum ImageRenderingMode {
    /**
     * The scaling algorithm is UA dependent. Since version 1.9 (Firefox 3.0), Gecko uses bilinear resampling (high quality).
     */
    Auto = "auto",
    /**
     * The image is scaled with the nearest-neighbor algorithm.
     */
    CrispEdges = "crisp-edges",
    /**
     * Using the nearest-neighbor algorithm,
     * the image is scaled up to the next integer multiple that is greater than or equal to its original size,
     * then scaled down to the target size, as for smooth. When scaling up to integer multiples of the original size,
     * this will have the same effect as crisp-edges.
     */
    Pixelated = "pixelated"
}
/**
 * css sprite renderer
 */
export declare class CssSpriteRenderer extends CssRenderer<HTMLImageElement> implements ICssImageRenderOption {
    private _imageWidth;
    private _imageHeight;
    private _imageFlipX;
    private _imageFlipY;
    private _opacity;
    private _imageRenderingMode;
    private _initializeFunction;
    protected renderInitialize(): void;
    protected updateCenterOffset(updateTransform: boolean): void;
    protected updateViewScale(updateTransform: boolean): void;
    /**
     * image (default: null)
     */
    get image(): HTMLImageElement | null;
    /**
     * set image from path asynchronously
     * @param path image path
     * @param onComplete on complete callback
     * @returns
     */
    asyncSetImageFromPath(path: string, onComplete?: () => void): void;
    /**
     * set image from `HTMLImageElement`
     * @param image image must be loaded
     * @returns
     */
    setImage(image: HTMLImageElement): void;
    /**
     * image width (default: 0)
     *
     * if this value is 0, it will automatically update when image is set
     */
    get imageWidth(): number;
    /**
     * image width (default: 0)
     *
     * if this value is 0, it will automatically update when image is set
     */
    set imageWidth(value: number);
    /**
     * image height (default: 0)
     *
     * if this value is 0, it will automatically update when image is set
     */
    get imageHeight(): number;
    /**
     * image height (default: 0)
     *
     * if this value is 0, it will automatically update when image is set
     */
    set imageHeight(value: number);
    /**
     * image flip x (default: false)
     */
    get imageFlipX(): boolean;
    /**
     * image flip x (default: false)
     */
    set imageFlipX(value: boolean);
    /**
     * image flip y (default: false)
     */
    get imageFlipY(): boolean;
    /**
     * image flip y (default: false)
     */
    set imageFlipY(value: boolean);
    /**
     * image opacity (default: 1)
     */
    get opacity(): number;
    /**
     * image opacity (default: 1)
     */
    set opacity(value: number);
    /**
     * image rendering mode (default: ImageRenderingMode.Pixelated)
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
     */
    get imageRenderingMode(): ImageRenderingMode;
    /**
     * image rendering mode (default: ImageRenderingMode.Pixelated)
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
     */
    set imageRenderingMode(value: ImageRenderingMode);
}
