import { FixedPageRenderer } from '../../core/fixed-document'; import { Book, LinkEvent, LoadEvent, RelocateEvent } from '../../core/types'; import { EventListener, LayoutMode, ReaderMark, RendererConfig, RendererStyles } from '../../core/renderer'; import { ReaderThemeInput } from '../../core/theme'; import { BrowserPageCompositor, BrowserPageSurface } from './compositor'; import { BrowserFixedContentRenderer, BrowserFixedPainter, BrowserFixedPainterPreference, BrowserFixedVisualRenderer } from './fixed-content'; import { BrowserContentEngine } from './content-engine'; interface RendererEventMap { load: LoadEvent; relocate: RelocateEvent; link: LinkEvent; } type Listener = (event: T) => void; export interface BrowserFixedRendererConfig extends RendererConfig { /** The browser element to render into. */ container: HTMLElement; /** * Optional visual page renderer. When omitted, PDF fixed documents use the * built-in 2D canvas renderer and other formats render their text layer only. */ fixedPageRenderer?: FixedPageRenderer; fixedContentRenderer?: BrowserFixedContentRenderer; /** Built-in fixed visual painter preference. Defaults to Canvas; WebGPU is opt-in. */ fixedPainter?: BrowserFixedPainterPreference; /** Custom fixed-page painters evaluated by the built-in painter visual renderer. */ fixedPainters?: readonly BrowserFixedPainter[]; /** Custom fixed-page visual renderers evaluated before built-in image/PDF renderers. */ fixedVisualRenderers?: readonly BrowserFixedVisualRenderer[]; pageCompositor?: BrowserPageCompositor; devicePixelRatio?: number | (() => number); } export declare class BrowserFixedRenderer implements BrowserContentEngine { private readonly host; private readonly events; private readonly beforeNavigate; private readonly surfacePipeline; private readonly contentRenderer; private readonly scroller; private readonly pageHost; private sequence; private styles; private layoutMode; private maxColumnCount; private lastLocation; private readonly devicePixelRatio?; private wheelNavigationPending; private visiblePageCount; private prewarmToken; private cancelPrewarmTask; constructor(config: BrowserFixedRendererConfig); open(book: Book): Promise; goTo(target: number | string): Promise; next(): Promise; prev(): Promise; goToFraction(fraction: number): Promise; setStyles(styles: RendererStyles): void; setTheme(theme: ReaderThemeInput): void; setLayout(mode: LayoutMode): void; setSpread(maxColumns: number): void; setMark(mark: ReaderMark): void; removeMark(id: string): void; clearMarks(kind?: string): void; getMarks(): ReaderMark[]; getLocation(): RelocateEvent | null; getCurrentSurface(): BrowserPageSurface | null; getSectionFractions(): number[]; refresh(): Promise; on(event: K, listener: Listener): void; on(event: string, listener: EventListener): void; off(event: K, listener: Listener): void; off(event: string, listener: EventListener): void; destroy(): void; private renderCurrentPage; private applyPageAlignment; private getViewportMetrics; private createRenderPlan; private getVisiblePages; private getRequestedColumnCount; private resolveSpreadFit; private createSpreadPageContexts; private getDevicePixelRatio; private scheduleAdjacentPrewarm; private cancelScheduledPrewarm; private emitRelocate; private emit; private canNavigate; private readonly handleWheel; } export declare const createBrowserFixedRenderer: (config: BrowserFixedRendererConfig) => BrowserFixedRenderer; export {}; //# sourceMappingURL=fixed.d.ts.map