import { BehaviorSubject, Observable } from 'rxjs'; import { Context } from '../context/Context'; import { Pagination } from '../pagination/Pagination'; import { ReaderSettingsManager } from '../settings/ReaderSettingsManager'; import { createSpineItemLocator as createSpineItemLocationResolver } from '../spineItem/locationResolver'; import { SpineItem } from '../spineItem/SpineItem'; import { DestroyableClass } from '../utils/DestroyableClass'; import { Viewport } from '../viewport/Viewport'; import { SpineItemsLoader } from './loader/SpineItemsLoader'; import { SpineLocator } from './locator/SpineLocator'; import { Pages, PagesState } from './Pages'; import { SpineItemsManager } from './SpineItemsManager'; import { SpineItemsObserver } from './SpineItemsObserver'; import { SpineLayout, SpineLayoutOptions } from './SpineLayout'; import { SpineItemSpineLayout } from './types'; export declare class Spine extends DestroyableClass { protected context: Context; protected pagination: Pagination; spineItemsManager: SpineItemsManager; spineItemLocator: ReturnType; protected settings: ReaderSettingsManager; protected viewport: Viewport; protected elementSubject: BehaviorSubject; protected spineLayout: SpineLayout; readonly spineItemsLoader: SpineItemsLoader; locator: SpineLocator; spineItemsObserver: SpineItemsObserver; pages: Pages; element$: Observable; constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spineItemLocator: ReturnType, settings: ReaderSettingsManager, viewport: Viewport); get element(): HTMLElement | undefined; layout(options?: SpineLayoutOptions): void; getSpineItemSpineLayoutInfo(spineItemOrIndex: SpineItem | number | string | undefined): SpineItemSpineLayout; get layout$(): Observable; destroy(): void; }