import { State } from "../types/state";
import { Pose } from "../types/pose";
import { GestureEvent } from "../utils/event";
import { BaseControllerInitArgs } from "./base";
import { ModelScene } from "../model";
import { FloorplanController, FloorplanControllerCustomInitArgs, FloorplanControllerInitArgs } from "./floorplan";
interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
}
declare const defaultTopviewControllerCustomInitArgs: Required<TopviewControllerCustomInitArgs>;
type TopviewControllerInitArgs = BaseControllerInitArgs & TopviewControllerCustomInitArgs;
declare class TopviewController extends FloorplanController implements Required<TopviewControllerInitArgs> {
    static parseArgs(args: TopviewControllerInitArgs): Required<FloorplanControllerInitArgs>;
    static initAnimationEndState(args: TopviewControllerInitArgs): State;
    constructor(args: TopviewControllerInitArgs);
    updateConfiguration(args: FloorplanControllerCustomInitArgs): boolean;
    /**
     * 更新模型
     * @param model - 模型
     */
    updateModel(modelScene: ModelScene): 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>;
    /**
     * 初始化动画
     */
    protected initAnimation(): Promise<void>;
    /** 惯性滚动 */
    protected requestMomentumMovement(): void;
    /** 触摸 Pan 事件，相机转动 */
    protected onPanGesture(event: GestureEvent): void;
    /** 触摸 Pinch 事件， 相机缩放 */
    protected onPinchGesture(event: GestureEvent): void;
    /** 鼠标滚轮事件 相机缩放 */
    protected onMouseWheel(event: GestureEvent): void;
}
export { TopviewController, TopviewControllerInitArgs, TopviewControllerCustomInitArgs, defaultTopviewControllerCustomInitArgs, };
