import { blockClass } from '@sentry-internal/rrweb-types'; import { canvasMutationCallback } from '@sentry-internal/rrweb-types'; import { DataURLOptions } from '@sentry-internal/rrweb-snapshot'; import { IWindow } from '@sentry-internal/rrweb-types'; import { Mirror } from '@sentry-internal/rrweb-snapshot'; export declare class CanvasManager implements CanvasManagerInterface { private pendingCanvasMutations; private rafStamps; private options; private mirror; private shadowDoms; private windowsSet; private windows; private mutationCb; private restoreHandlers; private frozen; private locked; private snapshotInProgressMap; private worker; private lastSnapshotTime; reset(): void; freeze(): void; unfreeze(): void; lock(): void; unlock(): void; constructor(options: CanvasManagerConstructorOptions); addWindow(win: IWindow): void; addShadowRoot(shadowRoot: ShadowRoot): void; resetShadowRoots(): void; snapshot(canvasElement?: HTMLCanvasElement, options?: SnapshotOptions): void; private initFPSWorker; private processMutation; private initCanvasFPSObserver; private initCanvasMutationObserver; private getCanvasElements; private takeSnapshot; private startPendingCanvasMutationFlusher; private startRAFTimestamping; flushPendingCanvasMutations(): void; flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number): void; } export declare interface CanvasManagerConstructorOptions { recordCanvas: boolean; enableManualSnapshot?: boolean; mutationCb: canvasMutationCallback; win: IWindow; blockClass: blockClass; blockSelector: string | null; unblockSelector: string | null; maxCanvasSize?: MaxCanvasSize | null; mirror: Mirror; dataURLOptions: DataURLOptions; errorHandler?: ErrorHandler; sampling?: 'all' | number; } declare interface CanvasManagerInterface { reset(): void; freeze(): void; unfreeze(): void; lock(): void; unlock(): void; snapshot(canvasElement?: HTMLCanvasElement, options?: SnapshotOptions): void; addWindow(win: IWindow): void; addShadowRoot(shadowRoot: ShadowRoot): void; resetShadowRoots(): void; } declare type ErrorHandler = (error: unknown) => void | boolean; declare type MaxCanvasSize = [number, number]; declare type SnapshotOptions = { skipRequestAnimationFrame?: boolean; }; export { }