import { Manifest } from '..'; import { Context } from '../context/Context'; import { HookManager } from '../hooks/HookManager'; import { ReaderSettingsManager } from '../settings/ReaderSettingsManager'; import { ReactiveEntity } from '../utils/ReactiveEntity'; import { Viewport } from '../viewport/Viewport'; import { DocumentRenderer } from './renderer/DocumentRenderer'; import { ResourceHandler } from './resources/ResourceHandler'; import { SpineItemLayout } from './SpineItemLayout'; import { Observable } from 'rxjs'; export type SpineItemReference = string | SpineItem | number; export type SpineItemState = { isLoaded: boolean; isReady: boolean; isError: boolean; error: unknown | undefined; isDirty: boolean; }; export declare class SpineItem extends ReactiveEntity { item: Manifest[`spineItems`][number]; context: Context; settings: ReaderSettingsManager; hookManager: HookManager; readonly index: number; viewport: Viewport; readonly containerElement: HTMLElement; readonly renderer: DocumentRenderer; readonly resourcesHandler: ResourceHandler; readonly didLayout$: SpineItemLayout["didLayout$"]; private readonly _layout; constructor(item: Manifest[`spineItems`][number], context: Context, settings: ReaderSettingsManager, hookManager: HookManager, index: number, viewport: Viewport); attach: (parentElement: HTMLElement) => void; load: () => void; unload: () => void; markDirty: () => void; get isReady$(): Observable; destroy: () => void; get element(): HTMLElement; get readingDirection(): "ltr" | "rtl" | undefined; isUsingVerticalWriting: () => boolean; get loaded$(): Observable; get unloaded$(): Observable; get renditionLayout(): "reflowable" | "pre-paginated"; get layoutInfo(): { width: number; height: number; }; get numberOfPages(): number; layout: SpineItemLayout["layout"]; }