import { PageSurface } from './page-surface'; import { EventListener, LayoutMode, ReaderMark, Renderer, RendererStyles } from './renderer'; import { ReaderThemeInput } from './theme'; import { Book } from './types'; export type ContentEngine = Renderer; export type ContentEngineRouteMatch = boolean | number; export interface ContentEngineRoute { readonly id: string; match(book: Book): ContentEngineRouteMatch; createEngine(): TEngine; } export interface ContentEngineRouterConfig { readonly routes: readonly ContentEngineRoute[]; readonly noActiveEngineMessage?: string; readonly getRouteErrorMessage?: (book: Book) => string; } export declare class ContentEngineRouter implements Renderer { private readonly routes; private readonly noActiveEngineMessage; private readonly getRouteErrorMessage; private readonly events; private readonly marks; private active; private activeEngineId; private styles; private layout; private spread; constructor(config: ContentEngineRouterConfig); 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(): import('./types').RelocateEvent | null; getCurrentSurface(): PageSurface | null; getSectionFractions(): number[]; refresh(): Promise; on(event: string, listener: EventListener): void; off(event: string, listener: EventListener): void; destroy(): void; getActiveEngine(): TEngine | null; getActiveEngineId(): string | null; private requireActive; private replayState; } export declare function createContentEngineRouter(routes: readonly ContentEngineRoute[], config?: Omit, 'routes'>): ContentEngineRouter; export declare function selectContentEngineRoute(book: Book, routes: readonly TRoute[], getRouteErrorMessage?: (book: Book) => string): TRoute; export declare function matchesFixedContent(book: Book): boolean; export declare function matchesReflowableContent(book: Book): boolean; //# sourceMappingURL=content-engine-router.d.ts.map