import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { Context } from '../../context/Context'; import { HookManager } from '../../hooks/HookManager'; import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager'; import { Spine } from '../../spine/Spine'; import { SpinePosition } from '../../spine/types'; import { DestroyableClass } from '../../utils/DestroyableClass'; import { Viewport } from '../../viewport/Viewport'; import { NavigationModeController, NavigationModeControllerNavigationEntry } from '../types'; import { AbsoluteViewport } from '../../viewport/types'; export type ControlledNavigationEntry = NavigationModeControllerNavigationEntry; export declare class ControlledNavigationController extends DestroyableClass implements NavigationModeController { protected settings: ReaderSettingsManager; protected hookManager: HookManager; protected context: Context; protected spine: Spine; protected viewport: Viewport; protected navigateSubject: Subject; readonly element$: BehaviorSubject; isNavigating$: Observable; layout$: Observable; constructor(settings: ReaderSettingsManager, hookManager: HookManager, context: Context, spine: Spine, viewport: Viewport); protected applyNavigationPosition(position: ControlledNavigationEntry["position"]): void; navigate(navigation: NavigationModeControllerNavigationEntry): void; destroy(): void; isActive: () => boolean; getNavigationVisibleArea: () => AbsoluteViewport; get viewportPosition(): SpinePosition; }