import { Observable } from 'rxjs'; import { Context } from '../context/Context'; import { SpineItemLocator } from '../spineItem/locationResolver'; import { SpineItem } from '../spineItem/SpineItem'; import { SpineItemPageLayout } from '../spineItem/types'; import { ReactiveEntity } from '../utils/ReactiveEntity'; import { Viewport } from '../viewport/Viewport'; import { SpineLocator } from './locator/SpineLocator'; import { SpineItemsManager } from './SpineItemsManager'; import { SpineLayout } from './SpineLayout'; import { SpineItemPageSpineLayout, SpinePosition } from './types'; export declare const spinePositionToSpineItemSpineLayout: ({ position, pageSize, }: { position: SpinePosition; pageSize: { height: number; width: number; }; }) => SpineItemPageSpineLayout; export type PageEntry = { absoluteLayout: SpineItemPageSpineLayout; layout: SpineItemPageLayout; itemIndex: number; absolutePageIndex: number; pageIndex: number; firstVisibleNode: { node: Node; offset: number; } | undefined; }; export type PagesState = { pages: PageEntry[]; }; export declare class Pages extends ReactiveEntity { readonly spineLayout: SpineLayout; readonly spineItemsManager: SpineItemsManager; readonly spineItemLocator: SpineItemLocator; readonly context: Context; readonly locator: SpineLocator; readonly viewport: Viewport; readonly layout$: Observable; constructor(spineLayout: SpineLayout, spineItemsManager: SpineItemsManager, spineItemLocator: SpineItemLocator, context: Context, locator: SpineLocator, viewport: Viewport); static fromSpineItemPageIndex: (pagesState: PagesState, spineItem: SpineItem | number, pageIndex: number) => PageEntry | undefined; static fromNextPageWithinSameSpineItem: (pagesState: PagesState, pageEntry: PageEntry) => PageEntry | undefined; static fromAbsolutePageIndex: (pagesState: PagesState, absolutePageIndex: number) => PageEntry | undefined; fromSpineItemPageIndex: (spineItem: SpineItem | number, pageIndex: number) => PageEntry | undefined; fromNextPageWithinSameSpineItem: (pageEntry: PageEntry) => PageEntry | undefined; fromAbsolutePageIndex: (absolutePageIndex: number) => PageEntry | undefined; observeFromAbsolutePageIndex: (absolutePageIndex: number) => Observable; }