import { CfiManager } from '../cfi'; import { Context } from '../context/Context'; import { HookManager } from '../hooks/HookManager'; import { ReaderSettingsManager } from '../settings/ReaderSettingsManager'; import { Spine } from '../spine/Spine'; import { SpineItemsManager } from '../spine/SpineItemsManager'; import { Viewport } from '../viewport/Viewport'; import { ControlledNavigationController } from './controllers/ControlledNavigationController'; import { ScrollNavigationController } from './controllers/ScrollNavigationController'; import { InternalNavigator } from './InternalNavigator'; import { UserNavigationEntry, InternalNavigationEntry, NavigationVisibleArea, SpineBoundary } from './types'; import { Observable } from 'rxjs'; import { SpinePosition, SpineItemPosition, SpineItem, UnboundSpinePosition } from '..'; import { getNavigationForSpineItemPage } from './resolvers/getNavigationForSpineItemPage'; export declare const createNavigator: ({ spineItemsManager, context, hookManager, spine, settings, viewport, cfi, }: { cfi: CfiManager; spineItemsManager: SpineItemsManager; context: Context; hookManager: HookManager; spine: Spine; settings: ReaderSettingsManager; viewport: Viewport; }) => { 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>; }; export type Navigator = ReturnType;