import { VirtualizationConfig } from '../types';
interface UseGridVirtualizationProps<T> {
    data: T[];
    config: VirtualizationConfig;
    containerRef: React.RefObject<HTMLDivElement | null>;
    enabled?: boolean;
}
interface VirtualizationReturn<T> {
    virtualItems: Array<{
        index: number;
        start: number;
        size: number;
        end: number;
        key: string;
    }>;
    visibleData: T[];
    containerStyle: React.CSSProperties;
    virtualizer: any;
    scrollInfo: {
        scrollOffset: number;
        totalHeight: number;
        containerHeight: number;
        visibleStartIndex: number;
        visibleEndIndex: number;
        isVirtualizing: boolean;
    };
    scrollToIndex: (index: number, options?: {
        align?: 'start' | 'center' | 'end';
    }) => void;
    scrollToTop: () => void;
    scrollToBottom: () => void;
}
export declare function useGridVirtualization<T>({ data, config, containerRef, enabled, }: UseGridVirtualizationProps<T>): VirtualizationReturn<T>;
export declare function calculateDynamicRowHeight(element: HTMLElement | null, defaultHeight?: number): number;
export declare function calculateScrollOffset(rowIndex: number, rowHeight: number | 'dynamic', estimatedHeight?: number): number;
export declare function measureVirtualizationPerformance<T>(data: T[], enabled: boolean): {
    dataSize: number;
    isVirtualizing: boolean;
    measureRender: () => number;
};
export {};
//# sourceMappingURL=use-grid-virtualization.d.ts.map