import { TransformControls } from './TransformControls.js';
import type { ICamera, IObject3D, ISceneEvent, IWidget } from '../../core';
export declare class TransformControls2 extends TransformControls implements IWidget, IObject3D {
    isWidget: true;
    assetType: "widget";
    setDirty: any;
    refreshUi: any;
    object: IObject3D | undefined;
    private _keyDownListener;
    private _keyUpListener;
    constructor(camera: ICamera, canvas: HTMLCanvasElement);
    dispose(): void;
    enabled: boolean;
    mode: 'translate' | 'rotate' | 'scale';
    translationSnap: number | null;
    rotationSnap: number | null;
    scaleSnap: number | null;
    space: 'world' | 'local';
    size: number;
    showX: boolean;
    showY: boolean;
    showZ: boolean;
    /**
     * Get the threejs object
     * @deprecated
     */
    get modelObject(): this;
    traverse: (callback: (object: IObject3D) => void) => void;
    traverseVisible: (callback: (object: IObject3D) => void) => void;
    traverseAncestors: (callback: (object: IObject3D) => void) => void;
    getObjectById: <T extends IObject3D = IObject3D>(id: number) => T | undefined;
    getObjectByName: <T extends IObject3D = IObject3D>(name: string) => T | undefined;
    getObjectByProperty: <T extends IObject3D = IObject3D>(name: string, value: string) => T | undefined;
    copy: (source: this, recursive?: boolean, ...args: any[]) => this;
    clone: (recursive?: boolean) => this;
    remove: (...object: IObject3D[]) => this;
    dispatchEvent: (event: ISceneEvent) => void;
    parent: IObject3D | null;
    children: IObject3D[];
}
//# sourceMappingURL=TransformControls2.d.ts.map