import { RevealBoundaryStore } from './RevealBoundryStore.js';
export interface CachedStyle {
    top: number;
    left: number;
    width: number;
    height: number;
    color: string;
    opacity: number;
    trueFillRadius: number[];
    borderStyle: string;
    borderWidth: number;
    fillMode: string;
    fillRadius: number;
    diffuse: boolean;
    revealAnimateSpeed: number;
    revealReleasedAccelerateRate: number;
}
export interface CachedRevealBitmap {
    radius: number;
    color: string;
    opacity: number;
    bitmaps: ImageData[];
}
export declare class CanvasConfig {
    protected _store: RevealBoundaryStore;
    pxRatio: number;
    canvas: HTMLCanvasElement;
    ctx: CanvasRenderingContext2D | null;
    paintedWidth: number;
    paintedHeight: number;
    revealCanvas: HTMLCanvasElement;
    cachedRevealBitmap: CachedRevealBitmap;
    cachedStyle: CachedStyle;
    mouseUpClientX: number | null;
    mouseUpClientY: number | null;
    mouseDownAnimateStartFrame: number | null;
    mouseDownAnimateCurrentFrame: number | null;
    mouseDownAnimateReleasedFrame: number | null;
    mouseDownAnimateLogicFrame: number | null;
    mousePressed: boolean;
    mouseReleased: boolean;
    currentFrameId: any;
    cachedFrameId: any;
    constructor(store: RevealBoundaryStore, $el: HTMLCanvasElement);
    cacheCanvasPaintingStyle: () => void;
    cacheRevealBitmaps: () => void;
    mouseInCanvas: () => boolean;
    getAnimateGrd: (frame: number, grd: CanvasGradient) => void;
    paint: (force?: boolean | undefined, debug?: boolean | undefined) => void;
}
//# sourceMappingURL=CanvasConfig.d.ts.map