export interface UseVirtualScrollOptions { /** Data array */ data: T[]; /** Row height - fixed number or function */ rowHeight?: number | ((row: T, index: number) => number); /** Overscan - extra rows to render outside viewport */ overscan?: number; /** Minimum buffer rows to maintain */ minBufferRows?: number; /** Minimum rows to render */ minRenderRows?: number; } export interface VirtualScrollResult { /** Ref for the scroll container */ scrollContainerRef: React.RefObject; /** Current scroll position */ scrollTop: number; /** Total height of all rows (for canvas sizing) */ totalHeight: number; /** Visible rows to render */ visibleRows: Array<{ row: T | null; rowIndex: number; offset: number; height: number; }>; /** Row heights array (null for constant height) */ heights: number[] | null; /** Row offsets array (null for constant height) */ offsets: number[] | null; /** Scroll handler (RAF-throttled) */ handleScroll: (event: React.UIEvent) => void; /** Scroll to specific row */ scrollToRow: (rowIndex: number, align?: "start" | "center" | "end") => void; /** Get row height by index */ getRowHeight: (index: number) => number; /** Get row offset by index */ getRowOffset: (index: number) => number; /** Whether using constant height mode */ isConstantHeight: boolean; /** Constant height value (when isConstantHeight is true) */ constantHeight: number; } export declare function useVirtualScroll(options: UseVirtualScrollOptions): VirtualScrollResult; export default useVirtualScroll; //# sourceMappingURL=useVirtualScroll.d.ts.map