import { Manifest } from '@prose-reader/shared'; import { HookManager } from '../hooks/HookManager'; import { PageEntry } from '../spine/Pages'; import { SpineItemsManager } from '../spine/SpineItemsManager'; import { ProseParsedCfi } from './parse'; import { resolveCfi as resolveBaseCfi } from './resolve'; import { SpineItem } from '..'; export type CfiGenerateHookParams = { cfi: string; spineItem: Manifest["spineItems"][number]; }; export type CfiResolveHookParams = { cfi: string; }; export type CfiTransformHook = (params: Params) => string | undefined; export declare class CfiManager { private hookManager; private spineItemsManager; constructor(hookManager: HookManager, spineItemsManager: SpineItemsManager); transformForResolve: (cfi: string) => string; parseCfi: (cfi: string) => ProseParsedCfi & { offset: number; }; getSpineItemFromCfi: (cfi: string) => SpineItem | undefined; isRootCfi: (cfi: string) => boolean; generateRootCfi: (item: Manifest["spineItems"][number]) => string; generateCfiForSpineItemPage: ({ spineItem, pageNode, }: { spineItem: Manifest["spineItems"][number]; pageNode: NonNullable; }) => string; generateCfiFromRange: (range: Range, item: Manifest[`spineItems`][number]) => string; resolveCfi: (params: Omit[0], "spineItemsManager">) => Omit & { offset?: number | undefined; node: Node | null; range?: Range | null; spineItem?: SpineItem; }; private transformGeneratedCfi; }