import { OrthographicCamera, Vector3 } from "three";
import { Group as TweenGroup } from '@tweenjs/tween.js';
import { Context } from "./context";
import { OrbitControls } from './OrbitControls';
export declare class Control extends OrbitControls {
    context: Context;
    camera: OrthographicCamera;
    domElement: HTMLElement;
    prevCameraZoom: number;
    tweenGroup: TweenGroup;
    offsetY: number;
    constructor(context: Context, camera: OrthographicCamera, domElement: HTMLElement);
    registryEvent(): void;
    unRegistryEvent(): void;
    onChange: () => void;
    tweenUpdate: () => void;
    /**
     * 设置纵向旋转角度
     * @param polar 弧度
     */
    setPolarAngle(polar: number, force?: boolean): void;
    setPolarAngleByDuration(polar: number, force?: boolean, duration?: number): Promise<unknown>;
    setAzimuthalAngle(azimuthAngle: number, force: boolean): void;
    setAzimuthalAngleDuration(azimuthal: number, force?: boolean, duration?: number): void | Promise<unknown>;
    getCameraLookAt(): Vector3;
    /**
     * 修改相机位置
     * @param position 修改后的相机的位置
     * @param duration 动画持续时间
     */
    setCameraPositionByTarget(newTarget: Vector3, duration: number): Promise<unknown>;
    setZoom(zoom: number, center: Vector3, force?: boolean): void;
    /**
     * 按照一个中心点设置相机的放大缩小
     * @param zoom
     * @param center
     * @returns
     */
    setZoomByDuration(zoom: number, center: Vector3, force?: boolean, duration?: number): Promise<unknown>;
    setTargetByOffset(offsetY: number, target?: Vector3): void;
    clearTween(): void;
    dispose(): void;
}
