import { MmdAnimationBase } from "../../Loader/Animation/mmdAnimationBase";
import type { MmdCameraAnimationTrack } from "../../Loader/Animation/mmdAnimationTrack";
import type { MmdCamera } from "../mmdCamera";
import type { IMmdBindableCameraAnimation } from "./IMmdBindableAnimation";
import type { IMmdRuntimeCameraAnimation } from "./IMmdRuntimeAnimation";
import { MmdRuntimeAnimation } from "./mmdRuntimeAnimation";
/**
 * Mmd runtime camera animation
 *
 * An object with mmd animation and camera binding information
 */
export declare class MmdRuntimeCameraAnimation extends MmdRuntimeAnimation<MmdCameraAnimationTrack> implements IMmdRuntimeCameraAnimation {
    /**
     * The animation data
     */
    readonly animation: MmdCameraAnimationTrack;
    private readonly _camera;
    private constructor();
    private static readonly _CameraPositionA;
    private static readonly _CameraPositionB;
    private static readonly _CameraRotationA;
    private static readonly _CameraRotationB;
    private static readonly _DegToRad;
    /**
     * Update animation
     * @param frameTime Frame time in 30fps
     */
    animate(frameTime: number): void;
    /**
     * bind animation to camera
     * @param animation animation to bind
     * @param camera bind target
     * @returns MmdRuntimeCameraAnimation instance
     */
    static Create(animation: MmdAnimationBase, camera: MmdCamera): MmdRuntimeCameraAnimation;
}
declare module "../../Loader/Animation/mmdAnimationBase" {
    interface MmdAnimationBase extends IMmdBindableCameraAnimation<MmdRuntimeCameraAnimation> {
    }
}
