import { CircularArray } from "./circulararray.js"; type Vel = { dx: number; dy: number; }; type WeightedVel = Vel & { dt: number; }; type KineticCallback = (v: Vel) => any; export declare class Kinetic { /** Velocities below this will be considered zero */ minVelocity: number; /** How much velocity to lose per unit time, `ice [0 <=> 1] rubber` */ friction: number; /** Velocity smoother, set its `.size` to modify smoothing */ readonly smoothing: CircularArray; private lock; /** Starts kinetic smooth-scrolling. The returned promise resolves when motion has ended. */ startKinetics(): Promise; /** Instantly halts any current motion */ stopKinetics(): void; protected readonly callbacks: Set; /** * Adds a callback that will be called whenever the velocity changes. * You can remove it by calling `unsubscribe` on the return value. * @param cb - the callback */ onVelocityChanged(cb: KineticCallback): { unsubscribe: () => boolean; }; } export {}; //# sourceMappingURL=kinetic.d.ts.map