import Editor from '@modules/editor';
import { IObjectClickService, IOrbitControlService, ITransformControlService } from '@modules/editor/service/control';
import * as THREE from 'three';
import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';
export type Services = {
    TransformControlService: ITransformControlService;
    ObjectClickService: IObjectClickService;
    OrbitControlService: IOrbitControlService;
};
declare class EditorControl {
    #private;
    constructor(editor: Editor, services: Services);
    get orbitControls(): import("three/examples/jsm/controls/OrbitControls").OrbitControls;
    private set isObjectDragging(value);
    private set orbitControlOnOff(value);
    get transformController(): TransformControls;
    init(): void;
    turnOffObjectClickEvent(): void;
    turnOnObjectClickEvent(): void;
    attachTransform(validObj: THREE.Object3D<THREE.Event>): void;
    detachTransform(): void;
    setTransformMode(mode: 'translate' | 'rotate' | 'scale'): void;
    removeClickedObject(): void;
    getTransformMode(): "translate" | "rotate" | "scale";
}
export default EditorControl;
