import * as THREE from 'three'; /** Build a `NumberKeyframeTrack` for `targetPath` (one value per keyframe time). */ export declare function numberTrack(targetPath: string, times: number[], values: number[]): THREE.NumberKeyframeTrack; /** Build a `VectorKeyframeTrack` for `targetPath` (three values per keyframe time). */ export declare function vectorTrack(targetPath: string, times: number[], values: number[]): THREE.VectorKeyframeTrack; /** Build a `QuaternionKeyframeTrack` for `targetPath` (four values per keyframe time, slerped). */ export declare function quaternionTrack(targetPath: string, times: number[], values: number[]): THREE.QuaternionKeyframeTrack; /** Declarative keyframe-track description consumed by {@link trackFromKeyframes}. `type` defaults to `'number'`. */ export interface TrackSpec { path: string; times: number[]; values: number[]; type?: 'number' | 'vector' | 'quaternion'; } /** Build the matching `KeyframeTrack` subclass from a {@link TrackSpec}. */ export declare function trackFromKeyframes(spec: TrackSpec): THREE.KeyframeTrack; /** Assemble tracks into a named `AnimationClip` of the given `duration` in seconds. */ export declare function clipFromTracks(name: string, duration: number, tracks: THREE.KeyframeTrack[]): THREE.AnimationClip; /** Continuous 360° rotation around `axis`. Loops seamlessly. */ export declare function spinClip(axis?: 'x' | 'y' | 'z', duration?: number, name?: string): THREE.AnimationClip; /** Vertical bob (sine, seamless loop). `amp` in world units. */ export declare function bobClip(amp?: number, duration?: number, name?: string): THREE.AnimationClip; /** Uniform scale pulse between `min` and `max`. */ export declare function pulseScaleClip(min?: number, max?: number, duration?: number, name?: string): THREE.AnimationClip; /** * Merge several clips into one, layering all their tracks. The result's * duration is the longest input duration. * * @param name - Name of the combined clip. * @param clips - Clips whose tracks are concatenated; tracks targeting the * same property will fight — combine complementary clips (spin + bob). * @returns One `AnimationClip` playing every input in parallel. */ export declare function combineClips(name: string, clips: THREE.AnimationClip[]): THREE.AnimationClip; //# sourceMappingURL=clips.d.ts.map