import { CoreInputSettings, Theme, EnhancerLayoutInputSettings, EnhancerFontsInputSettings, Context, Spine, InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, UserNavigationEntry, SpinePosition, SpineItemPosition, SpineItem, UnboundSpinePosition, NavigationVisibleArea, SpineBoundary, SpineItemsObserver, SpineItemsManager, SettingsInterface, CoreOutputSettings, SpineItemReference, Viewport, Features, ThemeEnhancerOutput, LayoutEnhancerOutput, ComputedCoreSettings, ExtraPaginationInfo, ResourcesLocator, NavigationEnhancerOutput, ZoomEnhancerOutput } from '.'; import { Manifest } from '@prose-reader/shared'; import { HookManager, CoreHook } from './hooks'; import { CfiManager } from './cfi'; import { Observable, ObservedValueOf, Subject } from 'rxjs'; import { getNavigationForSpineItemPage } from './navigation/resolvers/getNavigationForSpineItemPage'; import { PaginationInfo, Pagination } from './pagination'; export declare const createReaderWithEnhancers: (options: Partial< CoreInputSettings> & { manifest: Manifest; cfi?: string; ownerDocument?: Document; } & { theme?: Theme; } & Partial< EnhancerLayoutInputSettings> & Partial< EnhancerFontsInputSettings>) => Omit; cfi: CfiManager; navigation: { destroy: () => void; getNavigation: () => InternalNavigationEntry; internalNavigator: InternalNavigator; scrollNavigationController: ScrollNavigationController; controlledNavigationController: ControlledNavigationController; navigationState$: Observable<"free" | "busy">; navigate: (to: UserNavigationEntry) => void; lock: () => () => void; isLocked$: Observable; navigationResolver: { getNavigationForUrl: (url: string | URL) => { position: SpinePosition; spineItemId: string; } | undefined; getNavigationForSpineItemPage: (params: Omit[0], "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator" | "viewport">) => SpinePosition; getNavigationFromSpineItemPosition: (params: { spineItemPosition: SpineItemPosition; spineItem: SpineItem; }) => SpinePosition; getNavigationForCfi: (cfi: string) => SpinePosition | undefined; getNavigationForLastPage: (spineItem: SpineItem) => SpinePosition; getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => SpinePosition; getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition; getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition; clampPositionInSpine: (position: SpinePosition | UnboundSpinePosition, size: NavigationVisibleArea) => UnboundSpinePosition; getBoundaryForPosition: (position: SpinePosition | UnboundSpinePosition, size?: NavigationVisibleArea) => SpineBoundary | undefined; isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean; arePositionsDifferent: (a: { x: number; y: number; }, b: { x: number; y: number; }) => boolean; getAdjustedPositionForSpread: (position: SpinePosition | UnboundSpinePosition) => SpinePosition | UnboundSpinePosition; spineItemNavigator: { getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition; getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => SpineItemPosition; getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => SpineItemPosition; }; }; navigation$: Observable & { triggeredBy: InternalNavigationEntry["meta"]["triggeredBy"]; }>; position$: Observable< SpinePosition | UnboundSpinePosition>; }; spineItemsObserver: SpineItemsObserver; spineItemsManager: SpineItemsManager; layout: (options?: { immediate?: boolean; }) => void; mount: (containerElement: HTMLElement) => void; destroy: () => void; pagination: { readonly state: PaginationInfo; readonly state$: Observable>; }; settings: SettingsInterface, NonNullable< CoreOutputSettings | undefined>>; renderHeadless: (spineItem: SpineItemReference) => Observable<{ doc: Document; release: () => void; } | undefined>; viewport: Viewport; viewportState$: Observable<"free" | "busy">; viewportFree$: Observable<"free">; mounted$: Observable; features: Features; $: { destroy$: Subject; }; } & { theme: ThemeEnhancerOutput; }, "settings"> & LayoutEnhancerOutput & { settings: SettingsInterface< CoreInputSettings & EnhancerLayoutInputSettings, EnhancerLayoutInputSettings & CoreInputSettings & ComputedCoreSettings>; }, "pagination"> & { pagination: Omit<{ readonly state: PaginationInfo; readonly state$: Observable>; }, "state" | "state$"> & { state$: Observable< PaginationInfo & ExtraPaginationInfo>; state: PaginationInfo & ExtraPaginationInfo; }; locateResource: ResourcesLocator["locateResource"]; } & { links$: Observable; } & NavigationEnhancerOutput & ZoomEnhancerOutput & { utils: { isOrIsWithinValidLink: (target: Event[`target`]) => boolean; injectScopedCSS: (doc: Document, scope: string, styleTemplate: string) => () => void; }; }, "settings"> & { settings: SettingsInterface< CoreInputSettings & EnhancerLayoutInputSettings & EnhancerFontsInputSettings, EnhancerFontsInputSettings & EnhancerLayoutInputSettings & CoreInputSettings & ComputedCoreSettings>; } & { selection: { selection$: Observable<{ itemIndex: number; type: "change"; selection: Selection; } | { itemIndex: number; type: "over"; event: Event; selection: Selection; } | undefined>; selectionStart$: Observable; selectionEnd$: Observable; selectionOver$: Observable<{ itemIndex: number; type: "over"; event: Event; selection: Selection; }>; lastSelectionOnPointerdown$: Observable<{ itemIndex: number; type: "change"; selection: Selection; } | { itemIndex: number; type: "over"; event: Event; selection: Selection; } | undefined>; getSelection: () => { itemIndex: number; type: "change"; selection: Selection; } | { itemIndex: number; type: "over"; event: Event; selection: Selection; } | undefined; createOrderedRangeFromSelection: (params: { selection: { anchorNode?: Node | null; anchorOffset?: number; focusNode?: Node | null; focusOffset?: number; }; spineItem: SpineItem; }) => Range | undefined; }; };