import type { MmdCamera } from "../mmdCamera";
import type { IMmdBindableCameraAnimation } from "./IMmdBindableAnimation";
import type { IMmdRuntimeCameraAnimation } from "./IMmdRuntimeAnimation";
import { MmdCompositeAnimation } from "./mmdCompositeAnimation";
/**
 * Mmd composite runtime camera animation
 *
 * An object with mmd composite animation and camera binding information
 */
export declare class MmdCompositeRuntimeCameraAnimation implements IMmdRuntimeCameraAnimation {
    /**
     * The animation data
     */
    readonly animation: MmdCompositeAnimation;
    private readonly _camera;
    private readonly _runtimeAnimations;
    private _onSpanAdded;
    private _onSpanRemoved;
    private constructor();
    private static readonly _ActiveAnimationSpans;
    private static readonly _ActiveRuntimeAnimations;
    private static readonly _CameraPosition;
    private static readonly _CameraRotation;
    /**
     * Update animation
     * @param frameTime Frame time in 30fps
     */
    animate(frameTime: number): void;
    /**
     * Dispose. remove all event listeners
     */
    dispose(): void;
    /**
     * Bind animation to camera
     * @param animation Animation to bind
     * @param camera Bind target
     * @returns MmdCompositeRuntimeCameraAnimation instance
     */
    static Create(animation: MmdCompositeAnimation, camera: MmdCamera): MmdCompositeRuntimeCameraAnimation;
}
declare module "./mmdCompositeAnimation" {
    interface MmdCompositeAnimation extends IMmdBindableCameraAnimation<MmdCompositeRuntimeCameraAnimation> {
    }
}
