/** * SpringAnimator.ts * * Physics-based spring dynamics for smooth, natural-feeling animations. * Implements a critically-damped spring model for responsive UI motion. */ export interface SpringConfig { stiffness: number; damping: number; mass: number; precision: number; } export declare const SpringPresets: Record; export declare class SpringAnimator { private current; private target; private velocity; private config; private atRest; private onUpdate?; private onRest?; constructor(initialValue: number, config?: Partial, onUpdate?: (value: number) => void, onRest?: () => void); /** * Set a new target value. The spring will animate towards it. */ setTarget(target: number): void; /** * Instantly jump to a value (no animation). */ setValue(value: number): void; /** * Apply an impulse (instant velocity change). */ impulse(force: number): void; /** * Step the spring simulation forward. * Uses semi-implicit Euler integration. */ update(delta: number): number; /** * Get current value. */ getValue(): number; /** * Check if the spring has settled. */ isAtRest(): boolean; /** * Change spring configuration dynamically. */ setConfig(config: Partial): void; } export declare class Vec3SpringAnimator { x: SpringAnimator; y: SpringAnimator; z: SpringAnimator; constructor(initial: [number, number, number], config?: Partial, onUpdate?: (value: [number, number, number]) => void); setTarget(target: [number, number, number]): void; update(delta: number): [number, number, number]; getValue(): [number, number, number]; isAtRest(): boolean; } //# sourceMappingURL=SpringAnimator.d.ts.map