export interface WaterfallItem { id: string | number; data: any; height?: number; width?: number; } export interface WaterfallTrack { items: T[]; size: number; } export interface WaterfallLayoutOptions { tracks: number; trackGap: number; itemGap: number; direction: 'vertical' | 'horizontal'; } export interface WaterfallLayout { tracks: WaterfallTrack[]; totalSize: number; } export declare const useWaterfall: (items: T[], options: WaterfallLayoutOptions) => { layout: WaterfallLayout; registerItemRef: (id: string | number, element: HTMLElement | null) => void; measureItemSize: (id: string | number) => { width: number; height: number; }; recalculateLayout: () => void; }; export default useWaterfall;