import { Object3D, Quaternion, Vector3, Camera, Matrix4 } from 'three'; import { TransformControlsGizmo } from './transformcontrolsgizmo'; export interface TransformControlsPointerObject { x: number; y: number; button: number; } export declare function safeDecompose(matrix: Matrix4, position: Vector3, quaternion: Quaternion, scale: Vector3): void; export declare class TransformControls extends Object3D { readonly isTransformControls = true; uniformScale: boolean; visible: boolean; private domElement; private raycaster; gizmo: TransformControlsGizmo; private plane; private tempVector; private tempVector2; private tempQuaternion; private unit; private pointStart; private pointEnd; private offset; private rotationAxis; private startNorm; private endNorm; private rotationAngle; private tag; private cameraPosition; private cameraQuaternion; private cameraScale; private parentPosition; private parentQuaternion; private parentQuaternionInv; private parentScale; private worldPositionStart; private worldQuaternionStart; private worldScaleStart; private worldPosition; private worldQuaternion; private worldQuaternionInv; private worldScale; private eye; private positionStart; private quaternionStart; private scaleStart; camera: TCamera; object: Object3D | undefined; enabled: boolean; private axis; mode: string; private translationSnap; private rotationSnap; private scaleSnap; space: string; private size; dragging: boolean; showX: boolean; showY: boolean; showZ: boolean; private changeEvent; private mouseDownEvent; private mouseUpEvent; private objectChangeEvent; constructor(camera: TCamera, domElement: HTMLElement); private intersectObjectWithRay; attach: (object: Object3D) => this; detach: () => this; private getAxisVector; reset: () => this; updateMatrixWorld: () => void; private originalCursorStyle; private currentCursorStyle; private pointerHover; private pointerDown; private pointerMove; private pointerUp; private getPointer; private onPointerHover; private onPointerDown; private onPointerMove; private onPointerUp; getMode: () => TransformControls['mode']; setMode: (mode: TransformControls['mode']) => void; setTranslationSnap: (translationSnap: number) => void; setRotationSnap: (rotationSnap: number) => void; setScaleSnap: (scaleSnap: number) => void; setSize: (size: number) => void; setSpace: (space: string) => void; update: () => void; connect: (domElement: HTMLElement) => void; dispose: () => void; }