import { Observable, Subject } from 'rxjs'; import { Context } from '../context/Context'; import { ReaderSettingsManager } from '../settings/ReaderSettingsManager'; import { SpineItem } from '../spineItem/SpineItem'; import { DestroyableClass } from '../utils/DestroyableClass'; import { Viewport } from '../viewport/Viewport'; import { SpineItemsManager } from './SpineItemsManager'; import { SpineItemsObserver } from './SpineItemsObserver'; import { SpineItemSpineLayout } from './types'; export type SpineLayoutOptions = { immediate?: boolean; }; export declare class SpineLayout extends DestroyableClass { protected spineItemsManager: SpineItemsManager; protected spineItemsObserver: SpineItemsObserver; protected context: Context; protected settings: ReaderSettingsManager; protected viewport: Viewport; protected externalLayoutTrigger: Subject; protected spineItemsRelativeLayouts: SpineItemSpineLayout[]; readonly layout$: Observable; constructor(spineItemsManager: SpineItemsManager, spineItemsObserver: SpineItemsObserver, context: Context, settings: ReaderSettingsManager, viewport: Viewport); private watchForVerticalWritingUpdate; layout(options?: SpineLayoutOptions): void; getSpineItemSpineLayoutInfo(spineItemOrIndex: SpineItem | number | string | undefined): SpineItemSpineLayout; get numberOfPages(): number; destroy(): void; private getSpreadPosition; private getStartEdges; private createSpineItemLayout; }