import type { PrototypeEasing } from './prototype.js'; import type { PrototypeMotionSample, PrototypeSpringParameters } from './prototypeMotionContracts.js'; export interface PrototypeSpringPlan { readonly from: number; readonly to: number; /** Absolute progress units per second, including when to < from. */ readonly initialVelocity: number; readonly parameters: Readonly; readonly maxDurationMs: number; readonly durationMs: number; readonly reason: 'settled' | 'duration-cap'; } export interface CreatePrototypeSpringPlanOptions { parameters: PrototypeSpringParameters; from?: number; to?: number; initialVelocity?: number; /** Maximum physical time, bounded to ten seconds; never a trajectory scaling factor. */ durationMs: number; } export declare function resolvePrototypeSpringParameters(easing: Extract): PrototypeSpringParameters; export declare function createPrototypeSpringPlan(input: CreatePrototypeSpringPlanOptions): PrototypeSpringPlan; export declare function samplePrototypeSpring(plan: PrototypeSpringPlan, elapsedMs: number): PrototypeMotionSample; /** Bounded piecewise-linear CSS approximation of physical samples, including overshoot and truncated endpoints. * The last value is never forced to one. Equal endpoints with nonzero velocity need actual sampled keyframes. */ export declare function prototypeSpringEasingCss(plan: PrototypeSpringPlan, sampleCount?: number): string;