import { BlockWindowEvent, Book, LinkEvent, LoadEvent, RelocateEvent } from '../../core/types'; import { LayoutMode, ReaderMark, RendererConfig, RendererStyles } from '../../core/renderer'; import { ReaderThemeInput } from '../../core/theme'; import { BrowserPageCompositor, BrowserPageSurface } from './compositor'; import { BrowserReflowableContentRenderer } from './reflowable-content'; import { BrowserContentEngine } from './content-engine'; interface RendererEventMap { load: LoadEvent; relocate: RelocateEvent; link: LinkEvent; 'block-window': BlockWindowEvent; } type Listener = (event: T) => void; export interface BrowserRendererConfig extends RendererConfig { /** The browser element to render into. */ container: HTMLElement; reflowableContentRenderer?: BrowserReflowableContentRenderer; pageCompositor?: BrowserPageCompositor; } export declare class BrowserRenderer implements BrowserContentEngine { private readonly host; private readonly scroller; private readonly spacer; private readonly content; private book; private sections; private currentIndex; private prepared; private lines; private readonly surfacePipeline; private styles; private maxColumnCount; private columnLayout; private layoutMode; private pageIndex; private progress; private lastLocation; private readonly events; private resizeObserver; private activeLoadId; private tocPositions; private pendingTOCItem; private suppressNextScrollRelocate; private prefetchPageCount; private beforeNavigate; constructor(config: BrowserRendererConfig); 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: Listener): void; off(event: K, listener: Listener): void; off(event: string, listener: Listener): void; destroy(): void; private loadSection; private loadTextBlocks; private relayout; private renderVisibleLines; private emitRelocate; private emitBlockWindow; private getPrefetchBlockIds; private getSourceHeightForPages; private resolveHrefFallback; private rebuildTOCPositions; private getTOCSectionIndex; private getTOCFragment; private findTOCItem; private canNavigate; private getCurrentTOCItem; private getAnchorScrollTop; private getAnchorSourceTop; private getAnchorIds; private getFileposSourceTop; private getContentHeight; private resolveAnchorValue; private getScrollTopForSourceTop; private getBaseTextStyle; private getSourceScrollTop; private getSourceViewportHeight; private getViewportMetrics; private applyPageScroll; private applyOverflowMode; private getPagePaddingBlock; private getSectionFraction; private restoreSectionFraction; private scrollTopForFraction; private getLineHeightPixels; private findReadablePage; private emit; } export declare const createBrowserRenderer: (config: BrowserRendererConfig) => BrowserContentEngine; export {}; //# sourceMappingURL=renderer.d.ts.map