import { BaseController } from '../Base/BaseController';
import * as THREE from 'three';
import type { MoveHelperAbstract } from '../Helper';
export declare class MoveController<T extends MoveHelperAbstract = MoveHelperAbstract> extends BaseController<T> {
    get moveByMouseEnable(): boolean;
    protected name: string;
    private startInfo?;
    private _moveByMouseEnable;
    private mouseInfo?;
    private mousedownEventListenerDisposer;
    constructor(...params: ConstructorParameters<typeof BaseController<T>>);
    dispose(): void;
    /**
     * @description: 跟随鼠标移动
     */
    moveByMouse(): void;
    /**
     * @description: 禁用跟随鼠标移动
     */
    disableMoveByMouse(): void;
    onIntersectionOnModelUpdate(intersection: {
        point: THREE.Vector3;
    }): void;
    protected onApplyOriginObjectScale(params: {
        matrix: THREE.Matrix4;
        origin?: THREE.Vector3;
    }): void;
    private handleMouseDown;
    private handleMouseUp;
    /**
     * @description: 拖动开始，找出拖的Direction
     */
    private dragStart;
    private dragging;
    private move;
    private dragEnd;
}
