/** * Animation timing math for the per-frame overlay renderer. * * The static `render-local` path composites one PNG per element with a fade + slide. * The animated path instead evaluates every overlay as a function of time `t` (in * seconds) — entrance, word-by-word reveal, stat count-up, gauge fill, push-in — and * rasterises one transparent frame per output frame, which ffmpeg overlays on the * footage. Everything here is pure and unit-tested; the rasterise + ffmpeg run are * injected by the caller (see `animate-render.ts`). */ export declare function clamp01(x: number): number; /** ease-out cubic — fast in, decelerate into rest (the Apple-ish settle). */ export declare function easeOutCubic(t: number): number; /** ease-out back — a slight overshoot then settle (spring-like entrance). */ export declare function easeOutBack(t: number): number; /** Opacity over an element's [start,end] window with symmetric fade in/out. */ export declare function elementOpacity(t: number, start: number, end: number, fade?: number): number; /** Entrance slide offset in px (eased): `dist` at `start`, 0 once the entrance ends. */ export declare function slideOffset(t: number, start: number, dur: number, dist: number): number; /** Entrance scale (eased, overshoot): `from` at `start`, settles to 1 over `dur`. */ export declare function popScale(t: number, start: number, dur: number, from?: number): number; /** Slow push-in scale across the whole window: `from`→`to` (e.g. 1.0→1.02). */ export declare function pushInScale(t: number, start: number, end: number, from?: number, to?: number): number; /** * Word-by-word reveal: how many of `totalWords` are visible at `t`. Words appear * across the first `leadFrac` of the window, then all hold. At least 1 once started. */ export declare function revealWordCount(t: number, start: number, end: number, totalWords: number, leadFrac?: number): number; /** Integer count-up 0→`target` over [start, start+dur], eased. */ export declare function countUpValue(t: number, start: number, dur: number, target: number): number; /** Gauge fill 0→`targetPct` (0..1) over [start, start+dur], eased. */ export declare function gaugeProgress(t: number, start: number, dur: number, targetPct: number): number; /** Number of frames for a clip of `durationSeconds` at `fps` (inclusive of frame 0). */ export declare function frameCount(durationSeconds: number, fps: number): number; /** Timestamp (seconds) of frame index `i` at `fps`. */ export declare function frameTime(i: number, fps: number): number; //# sourceMappingURL=animate.d.ts.map