import { CameraPose } from "../core/camera";
import { Cardboard } from "../cardboard";
import { State } from "../types/state";
import { Pose } from "../types/pose";
import { BaseControllerInitArgs } from "./base";
import { PanoramaController, PanoramaControllerCustomInitArgs, PanoramaControllerInitArgs } from "./panorama";
import { PanoCircleMeshInterface } from "../types/panoCircleMeshInterface";
interface VRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
}
declare const defaultVRPanoramaControllerCustomInitArgs: Required<VRPanoramaControllerCustomInitArgs>;
type VRPanoramaControllerInitArgs = BaseControllerInitArgs & VRPanoramaControllerCustomInitArgs;
declare class VRPanoramaController extends PanoramaController implements Required<VRPanoramaControllerInitArgs> {
    protected cardboard: Cardboard;
    protected helperElement?: HTMLElement;
    protected activePanoMesh?: PanoCircleMeshInterface;
    protected activeTime?: number;
    static parseArgs(args: VRPanoramaControllerInitArgs): Required<PanoramaControllerInitArgs>;
    static initAnimationEndState(args: VRPanoramaControllerInitArgs): State;
    constructor(args: VRPanoramaControllerInitArgs);
    updateConfiguration(args: VRPanoramaControllerCustomInitArgs): boolean;
    /** 析构函数 */
    destroy(): void;
    /** 是否准备好，即不在用户操作中，并且不再动画中 */
    isReady(): boolean;
    /** 生命周期： 更新屏幕渲染尺寸 */
    updateRenderSize(): void;
    /** 转动摄像头 */
    updateCamera(pose: Partial<Pose>, duration: number, userAction: boolean): Promise<void>;
    /** 通过帧动画转动摄像头 */
    updateCameraWithKeyframes(keyframes: {
        progress: number;
        value: Pose;
        key?: string;
    }[], duration: number, userAction: boolean): Promise<void>;
    /** 时间迭代 */
    updateTime(time: number, deltaTime: number, ...args: any[]): void;
    /** 生命周期 渲染 */
    render(): boolean;
    /**
     * 同步修改相机参数
     * @param cameraPose
     */
    protected setCamera(cameraPose?: Partial<CameraPose>): void;
    /** 删除提示层 */
    protected destroyHelper(): void;
    /** 设置提示层大小 */
    protected updateHelperElementSize(): void;
    /** 计算看向方向的射线碰撞 */
    protected intersect(time: number): PanoCircleMeshInterface | undefined;
    protected onPanGesture(): void;
    protected onTapGesture(): void;
    protected onPinchGesture(): void;
    protected onMouseMove(): void;
    protected onMouseOut(): void;
}
export { VRPanoramaController, VRPanoramaControllerInitArgs, VRPanoramaControllerCustomInitArgs, defaultVRPanoramaControllerCustomInitArgs, };
