interface CachedStyle {
    top: number;
    left: number;
    width: number;
    height: number;
    color: string;
    opacity: number;
    trueFillRadius: number[];
    cacheCanvasSize: number;
    borderStyle: string;
    borderWidth: number;
    fillMode: string;
    fillRadius: number;
    diffuse: boolean;
    revealAnimateSpeed: number;
    revealReleasedAccelerateRate: number;
}
interface CanvasConfig {
    canvas: HTMLCanvasElement;
    ctx: CanvasRenderingContext2D | null;
    width: number;
    height: number;
    cachedRevealBitmap: CachedRevealBitmap[];
    mouseUpClientX: number | null;
    mouseUpClientY: number | null;
    mouseDownAnimateStartFrame: number | null;
    mouseDownAnimateCurrentFrame: number | null;
    mouseDownAnimateReleasedFrame: number | null;
    mouseDownAnimateLogicFrame: number | null;
    mousePressed: boolean;
    mouseReleased: boolean;
    cachedStyle: CachedStyle;
    currentFrameId: any;
    cachedFrameId: any;
    getCanvasPaintingStyle(): CachedStyle;
    cacheRevealBitmaps(): void;
    mouseInCanvas(): boolean;
    getAnimateGrd(frame: number, grd: CanvasGradient): void;
}
export interface RevealBoundaryStore extends Partial<CanvasConfig> {
    _currentHashId: number;
    id: number;
    clientX: number;
    clientY: number;
    paintedClientX: number;
    paintedClientY: number;
    destroy(): void;
    addReveal($el: HTMLCanvasElement): void;
    removeReveal($el: HTMLCanvasElement): void;
    mouseInBoundary: boolean;
    canvasList: CanvasConfig[];
    onPointerEnterBoundary(): void;
    onPointerLeaveBoundary(): void;
    paintAll(frame?: number, force?: boolean): void;
    resetAll(): void;
    initializeAnimation(): void;
    switchAnimation(): void;
    cleanUpAnimation(config: CanvasConfig): void;
    animationQueue: Set<CanvasConfig>;
    dirty: boolean;
    raf: number | null;
    getRevealAnimationConfig(): CanvasConfig | null;
    revealAnimationConfig: CanvasConfig | null;
}
interface CachedRevealBitmap {
    type: number;
    bitmap: ImageData;
}
declare class RevealStateManager {
    private _currentHashId;
    private _storage;
    newBoundary: () => RevealBoundaryStore;
}
export default RevealStateManager;
//# sourceMappingURL=RevealStateManager.d.ts.map