/** * 快速滚动管理器 * 抽取 BaseTable 中的快速滚动相关逻辑 */ export interface FastScrollConfig { /** 预渲染缓冲区大小,用于快速滚动判断 */ overscanSize?: number; /** 快速滚动速度阈值 (像素/毫秒) */ velocityThreshold?: number; /** 快速滚动距离倍数阈值 */ distanceMultiplier?: number; /** 快速滚动结束等待时间 (毫秒) - 高速滚动 */ fastScrollEndDelayHigh?: number; /** 快速滚动结束等待时间 (毫秒) - 普通滚动 */ fastScrollEndDelayNormal?: number; /** 高速滚动速度阈值 (像素/毫秒) */ highVelocityThreshold?: number; } export interface FastScrollState { lastScrollTime: number; scrollVelocity: number; lastOffsetY: number; } export interface ScrollEventData { offsetY: number; maxRenderHeight: number; maxRenderWidth: number; } export interface VerticalRenderRange { topIndex: number; bottomIndex: number; topBlank: number; bottomBlank: number; } export interface FastScrollCallbacks { onFastScrollStart: (renderData: { offsetY: number; maxRenderHeight: number; maxRenderWidth: number; verticalRenderRange: VerticalRenderRange; }) => void; onFastScrollEnd: (scrollData: ScrollEventData) => void; getCurrentRenderRange: (offsetY: number, maxRenderHeight: number, dataLength: number) => VerticalRenderRange; } export declare class FastScrollManager { private state; private isFastScrolling; private fastScrollEndTimer?; private config; private callbacks; constructor(callbacks: FastScrollCallbacks, config?: FastScrollConfig); /** * 检测是否接近底部(剩余滚动距离少于两屏) */ private isNearBottom; /** * 处理滚动事件 - 检测和处理快速滚动 */ handleScrollEvent(sizeAndOffset: ScrollEventData, currentState: { offsetY: number; maxRenderHeight: number; maxRenderWidth: number; }, dataLength: number, totalScrollHeight: number): void; /** * 开始快速滚动 */ private startFastScrolling; /** * 重置快速滚动结束定时器 */ private resetFastScrollEndTimer; /** * 结束快速滚动 */ private endFastScrolling; /** * 清理资源 */ cleanup(): void; /** * 获取当前是否处于快速滚动状态 */ getIsFastScrolling(): boolean; /** * 获取当前滚动速度 */ getScrollVelocity(): number; /** * 清理资源 */ destroy(): void; /** * 获取当前配置 */ getConfig(): Readonly>; }