import { ILeaferImage, InnerId, IObject, IProgressData, ILeaferImageConfig, IFunction, ILeaferImageCacheCanvas, IMatrixData, ILeaferImagePatternPaint, ICanvasPattern, IImageManager } from '@leafer/interface';

declare class LeaferImage implements ILeaferImage {
    readonly innerId: InnerId;
    get url(): string;
    view: any;
    width: number;
    height: number;
    isSVG: boolean;
    hasAlphaPixel: boolean;
    get completed(): boolean;
    ready: boolean;
    error: IObject;
    loading: boolean;
    progress: IProgressData;
    use: number;
    config: ILeaferImageConfig;
    protected waitComplete: IFunction[];
    protected cache: ILeaferImageCacheCanvas;
    constructor(config: ILeaferImageConfig);
    load(onSuccess?: IFunction, onError?: IFunction): number;
    unload(index: number, stopEvent?: boolean): void;
    protected setView(img: any): void;
    protected onProgress(progress: IProgressData): void;
    protected onComplete(isSuccess: boolean): void;
    getFull(_filters?: IObject): any;
    getCanvas(width: number, height: number, opacity?: number, _filters?: IObject): any;
    getPattern(canvas: any, repeat: string | null, transform?: IMatrixData, paint?: ILeaferImagePatternPaint): ICanvasPattern;
    destroy(): void;
}

declare const ImageManager: IImageManager;

export { ImageManager, LeaferImage };
