import { type UIEventHandler } from 'react'; export declare const DOCUMENT_NAVIGATION_COLLECTION_WINDOW_THRESHOLD = 48; export declare const DOCUMENT_NAVIGATION_COLLECTION_WINDOW_LIMIT = 32; export declare const DOCUMENT_NAVIGATION_COLLECTION_WINDOW_OVERSCAN = 4; export interface DocumentNavigationWindowRange { end: number; start: number; windowed: boolean; } export interface DocumentNavigationWindowSpacerEntry { end: number; height: number; kind: 'spacer'; position: 'after' | 'before' | 'between'; start: number; } export interface DocumentNavigationWindowItemEntry { index: number; kind: 'item'; } export type DocumentNavigationWindowEntry = DocumentNavigationWindowItemEntry | DocumentNavigationWindowSpacerEntry; export interface DocumentNavigationListHandle { focusFirst: () => void; focusLast: () => void; } export declare function useDocumentNavigationWindow({ estimatedItemHeight, itemGap, keys, listPaddingTop, onRovingKeyChange, pinnedKeys, rovingKey, }: { estimatedItemHeight: number; itemGap: number; keys: readonly string[]; listPaddingTop: number; onRovingKeyChange: (key: string) => void; pinnedKeys?: readonly (string | null | undefined)[]; rovingKey: string | null; }): { entries: DocumentNavigationWindowEntry[]; focusAt: (requestedIndex: number) => void; mountedCount: number; onItemFocus: (index: number) => void; onScroll: UIEventHandler; range: DocumentNavigationWindowRange; registerItem: (key: string, element: HTMLElement | null) => void; rovingIndex: number; viewportRef: import("react").RefObject; }; export declare function DocumentNavigationWindowSpacer({ entry, }: { entry: DocumentNavigationWindowSpacerEntry; }): import("react").JSX.Element; export declare function calculateDocumentNavigationWindowRange({ anchorIndex, averageItemHeight, itemCount, limit, overscan, threshold, viewportHeight, }: { anchorIndex: number; averageItemHeight: number; itemCount: number; limit: number; overscan: number; threshold: number; viewportHeight: number; }): DocumentNavigationWindowRange; export declare function documentNavigationItemStarts(itemHeights: readonly number[], itemGap: number): number[]; export declare function documentNavigationWindowIndices({ itemCount, pinnedIndices, range, }: { itemCount: number; pinnedIndices: readonly number[]; range: DocumentNavigationWindowRange; }): number[]; export declare function documentNavigationWindowEntries(mountedIndices: readonly number[], itemStarts: readonly number[], itemCount: number, itemGap: number): DocumentNavigationWindowEntry[]; export declare function documentNavigationIndexAtOffset(itemStarts: readonly number[], offset: number, itemCount: number): number;