import { AnimationMixer, Object3D } from "three";
import IAnimatedObjectManager, { Animation } from "../../../interface/IAnimatedObjectManager";
import MeshAppendable from "../MeshAppendable";
import AnimationManager from "./AnimationManager";
import AnimationStates from "./AnimationStates";
export default class AnimatedObjectManager<T extends Object3D = Object3D> extends MeshAppendable<T> implements IAnimatedObjectManager {
    private _animationStates?;
    get $animationStates(): AnimationStates;
    get animations(): Record<string, AnimationManager>;
    set animations(val: Record<string, AnimationManager>);
    get animationPaused(): boolean;
    set animationPaused(value: boolean);
    get animationLoop(): number | boolean;
    set animationLoop(value: number | boolean);
    get serializeAnimation(): string | number | boolean | undefined;
    $mixer?: AnimationMixer;
    private _animation?;
    get animation(): Animation | undefined;
    set animation(val: Animation | undefined);
    get animationFrame(): number;
    set animationFrame(val: number);
}
