import type * as THREE from 'three'; export interface AnimationState { clipIndex: number; playing: boolean; speed: number; } export declare const MIN_SPEED = 0.1; export declare const MAX_SPEED = 3; export declare const DEFAULT_ANIMATION_STATE: AnimationState; /** A model with no clips is never "animated", so the card offers no animation action for it. */ export declare function initialState(clipCount: number): AnimationState | null; export declare function withClip(state: AnimationState, clipIndex: number, clipCount: number): AnimationState; export declare function withPlaying(state: AnimationState, playing: boolean): AnimationState; export declare function withSpeed(state: AnimationState, speed: number): AnimationState; /** The renderer draws on demand, so a paused or stopped mixer must not keep asking for frames. */ export declare function needsFrames(states: (AnimationState | null)[]): boolean; /** Runs the state's clip alone, at its speed, paused or not. One place, so every viewer plays alike. */ export declare function applyAnimationTo(mixer: THREE.AnimationMixer, clips: THREE.AnimationClip[], state: AnimationState): void; //# sourceMappingURL=modelAnimation.d.ts.map