import { FixedDocument, FixedPageRenderer } from '../../core/fixed-document'; import { BrowserFixedVisualRenderContext } from './fixed-visual'; import { WebGpuRenderTimings } from '../../pdf/paint/webgpu'; export type BrowserFixedPainterMatch = boolean | number; export type BrowserFixedPainterPreference = 'canvas' | 'webgpu' | 'auto'; export type BrowserFixedPaintBackend = 'canvas2d' | 'webgpu'; export interface BrowserFixedPaintMetric { readonly id: string; readonly backend: BrowserFixedPaintBackend; readonly ms: number; readonly fallbackFrom?: BrowserFixedPaintBackend; readonly fallbackReason?: string; readonly pageIndex?: number; readonly webGpu?: BrowserFixedWebGpuPaintDetail; } export interface BrowserFixedWebGpuPaintDetail { readonly cacheHit: boolean; readonly timings: WebGpuRenderTimings; } export interface BrowserFixedPaintResult { readonly element: HTMLElement; readonly contentKind: 'canvas' | 'image' | 'texture' | 'custom'; readonly paint: BrowserFixedPaintMetric; destroy?(): void; } export interface BrowserFixedPainter { readonly id: string; readonly backend: BrowserFixedPaintBackend; match(document: FixedDocument): BrowserFixedPainterMatch; paint(context: BrowserFixedVisualRenderContext): Promise | BrowserFixedPaintResult | null; prewarm?(context: BrowserFixedVisualRenderContext): Promise | void; destroy?(): Promise | void; } export interface BrowserFixedPainterConfig { readonly fixedPageRenderer?: FixedPageRenderer; readonly devicePixelRatio?: number | (() => number); } export interface BrowserFixedCanvasPainterConfig extends BrowserFixedPainterConfig { } export declare class BrowserFixedCanvasPainter implements BrowserFixedPainter { readonly id = "browser-fixed-canvas-painter"; readonly backend: "canvas2d"; private readonly configuredFixedPageRenderer?; private readonly defaultPdfPageRenderer; private readonly devicePixelRatio?; constructor(config?: BrowserFixedCanvasPainterConfig); match(document: FixedDocument): BrowserFixedPainterMatch; paint(context: BrowserFixedVisualRenderContext): Promise; destroy(): void; private getFixedPageRenderer; private getDevicePixelRatio; } export interface BrowserFixedWebGpuPainterConfig extends BrowserFixedPainterConfig { } export declare class BrowserFixedWebGpuPainter implements BrowserFixedPainter { readonly id = "browser-fixed-webgpu-painter"; readonly backend: "webgpu"; private readonly canvasPainter; private readonly pdfRenderer; private readonly devicePixelRatio?; private devicePromise; private pipelineByFormat; constructor(config?: BrowserFixedWebGpuPainterConfig); match(document: FixedDocument): BrowserFixedPainterMatch; paint(context: BrowserFixedVisualRenderContext): Promise; prewarm(context: BrowserFixedVisualRenderContext): Promise; destroy(): void; private createTextureSource; private paintPdfPage; private getDeviceBundle; private getDevicePixelRatio; } export declare function createDefaultFixedPainters(preference: BrowserFixedPainterPreference, config: BrowserFixedPainterConfig): BrowserFixedPainter[]; export declare function isBrowserWebGpuSupported(): boolean; //# sourceMappingURL=fixed-painter.d.ts.map