import { IImageViewer } from "../Models/IImageViewer";
import { Size } from "../Models/SelectionBoxTypes";
import { IImageLayer, IPaintCommand, IPaintObject } from "./types";
export declare class ImageLayer implements IImageLayer {
    viewer: IImageViewer;
    container: HTMLElement;
    naturalSize: {
        width: number;
        height: number;
    };
    mainCanvas: HTMLCanvasElement;
    backCanvas: HTMLCanvasElement;
    name: string;
    private _backgroundPainted;
    private _bgImage?;
    private _mainCtx;
    private _backCtx;
    private _paintObjects;
    private _tempPaintCommands;
    private _tempCanvas?;
    constructor(viewer: IImageViewer, container: HTMLElement, naturalSize: {
        width: number;
        height: number;
    });
    get size(): Size;
    get mainCtx(): CanvasRenderingContext2D;
    get backCtx(): CanvasRenderingContext2D;
    clear(clearCache: boolean): void;
    clearCache(): void;
    dispose(): void;
    saveToDataURL(): Promise<string>;
    merge(): Promise<void>;
    ensureBackground(): Promise<void>;
    get paintObjects(): IPaintObject[];
    drawObjects(): void;
    executeTempPaintCommand(cmd: IPaintCommand): void;
    executeTempPaintCommands(mainCtx: CanvasRenderingContext2D, backCtx: CanvasRenderingContext2D): void;
    getTempPaintCommands(): IPaintCommand[];
    clearTempPaintCommands(): void;
    getPaintObjectDesigners(): any[];
}
