import { Disposable } from "@lincode/promiselikes";
import { Object3D, AnimationClip } from "three";
import { AnimationData } from "../../../api/serializer/types";
import EventLoopItem from "../../../api/core/EventLoopItem";
export type PlayOptions = {
    crossFade?: number;
    repeat?: boolean;
    onFinish?: () => void;
};
export default class AnimationManager extends Disposable {
    private clip?;
    name: string;
    private mixer;
    private action?;
    constructor(nameOrClip: string | AnimationClip, target: EventLoopItem | Object3D);
    retarget(target: Object3D): AnimationManager;
    dispose(): this;
    get duration(): number;
    private loadClip;
    setTracks(data: AnimationData): void;
    play({ crossFade, repeat, onFinish }?: PlayOptions): void;
    stop(): void;
    getPaused(): boolean | undefined;
    setPaused(val: boolean): void;
    update(seconds: number): void;
}
