import { Friction } from './Friction'; import { Spring } from './Spring'; /** * 组合的滚动模型,支持惯性衰减和边界弹簧回弹。 */ export declare class Scroll { /** 滚动最大有效范围,用于越界判断 */ extent: number; /** 惯性摩擦模型 */ friction: Friction; /** 边界回弹弹簧模型 */ spring: Spring; /** 记录滚动开始时间戳 */ startTime: number; /** 当前是否正在弹簧回弹 */ private springing; /** 弹簧回弹时的位置偏移量 */ private springOffset; /** 缓存上次速度计算对应的时间 */ private lastTime?; /** 缓存上次速度结果 */ private lastDx?; constructor(extent: number, friction?: Friction, spring?: Spring); /** * 直接进入 snap 状态,将当前滚动位置使用弹簧动画对齐到目标位置。 */ snap(e: number, t: number): void; /** * 设置滚动初始位置和速度,并根据是否越界切换到弹簧回弹模式。 */ set(e: number, t: number): void; /** * 计算当前时间点的位置,如果超出边界则切换到弹簧回弹模式。 */ position(e: number): number; /** * 计算当前时间点的速度。 */ velocity(e: number): number; /** * 判断滚动是否结束。 */ done(): boolean; /** * 将 friction 的初速度按目标终点反推。 */ setVelocityByEnd(e: number): void; /** * 返回 friction 与 spring 的调试配置项。 */ configuration(): any[]; }