/**
 * @file useVirtualScroll Hook
 * @description 虚拟滚动逻辑 Hook，封装表格虚拟滚动的配置和计算
 *
 * 主要功能：
 * - 创建虚拟滚动实例
 * - 计算上下 padding（用于创建虚拟空间）
 * - 创建统一的 virtualRow 对象
 * - 获取要渲染的行数据
 */
import * as React from 'react';
import { useVirtualizer } from '../../../../../../../cn-ai-table/react-virtual';
import type { CustomRowItem } from '../../types';
/**
 * 虚拟滚动 Hook 参数
 */
export interface UseVirtualScrollParams {
    /** 总行数 */
    count: number;
    /** 滚动容器元素引用 */
    parentRef: React.RefObject<HTMLElement>;
    /** 行高配置 */
    rowHeight: 'low' | 'medium' | 'high';
    /** 预渲染额外行数 */
    overscan?: number;
}
/**
 * 虚拟行对象
 */
export interface VirtualRow {
    /** 行索引 */
    index: number;
    /** 行 key */
    key: string | number;
    /** 行起始位置（像素） */
    start: number;
    /** 行结束位置（像素） */
    end: number;
    /** 行高（像素） */
    size: number;
    /** 测量元素函数 */
    measureElement?: (element: Element | null) => void;
}
/**
 * 要渲染的行数据
 */
export interface RenderRowData {
    /** 虚拟行对象 */
    virtualRow: VirtualRow;
    /** 行数据项 */
    rowItem: CustomRowItem;
    /** 原始行索引 */
    index: number;
}
/**
 * 虚拟滚动 Hook 返回值
 */
export interface UseVirtualScrollReturn {
    /** 虚拟滚动实例 */
    virtualizer: ReturnType<typeof useVirtualizer>;
    /** 虚拟项列表 */
    virtualItems: any[];
    /** 上方 padding（像素） */
    paddingTop: number;
    /** 下方 padding（像素） */
    paddingBottom: number;
    /** 创建虚拟行对象 */
    createVirtualRow: (virtualItem: any) => VirtualRow;
    /** 获取要渲染的行数据 */
    getRowsToRender: (finalRows: CustomRowItem[]) => RenderRowData[];
}
/**
 * 虚拟滚动 Hook
 * @description 封装表格虚拟滚动的配置和计算
 * 使用 padding 方式实现，避免 transform 影响边框渲染
 * @param params - Hook 参数
 * @returns 虚拟滚动相关的方法和状态
 */
export declare function useVirtualScroll({ count, parentRef, rowHeight, overscan, }: UseVirtualScrollParams): UseVirtualScrollReturn;
export default useVirtualScroll;
