export function intersectObjectWithRay(object: any, raycaster: any, includeInvisible: any): any;
/**
 * This class can be used to transform objects in 3D space by adapting a similar interaction model
 * of DCC tools like Blender. Unlike other controls, it is not intended to transform the scene's camera.
 *
 * `TransformControls` expects that its attached 3D object is part of the scene graph.
 *
 * @augments Controls
 */
export class TransformControls extends Controls {
    _root: TransformControlsRoot;
    _gizmo: TransformControlsGizmo;
    _plane: TransformControlsPlane;
    _doNotPick: boolean;
    _offset: Vector3;
    _startNorm: Vector3;
    _endNorm: Vector3;
    _cameraScale: Vector3;
    _parentPosition: Vector3;
    _parentQuaternion: Quaternion;
    _parentQuaternionInv: Quaternion;
    _parentScale: Vector3;
    _worldScaleStart: Vector3;
    _worldQuaternionInv: Quaternion;
    _worldScale: Vector3;
    _positionStart: Vector3;
    _quaternionStart: Quaternion;
    _scaleStart: Vector3;
    _getPointer: typeof getPointer;
    _onPointerDown: typeof onPointerDown;
    _onPointerHover: typeof onPointerHover;
    _onPointerMove: typeof onPointerMove;
    _onPointerUp: typeof onPointerUp;
    /**
     * Returns the visual representation of the controls. Add the helper to your scene to
     * visually transform the attached  3D object.
     *
     * @return {TransformControlsRoot} The helper.
     */
    getHelper(): TransformControlsRoot;
    pointerHover(pointer: any): void;
    axis: any;
    pointerDown(pointer: any): void;
    dragging: boolean | undefined;
    pointerMove(pointer: any): void;
    rotationAngle: any;
    pointerUp(pointer: any): void;
    /**
     * Sets the 3D object that should be transformed and ensures the controls UI is visible.
     *
     * @param {Object3D} object -  The 3D object that should be transformed.
     * @return {TransformControls} A reference to this controls.
     */
    attach(object: Object3D): TransformControls;
    /**
     * Removes the current 3D object from the controls and makes the helper UI invisible.
     *
     * @return {TransformControls} A reference to this controls.
     */
    detach(): TransformControls;
    /**
     * Resets the object's position, rotation and scale to when the current transform began.
     */
    reset(): void;
    /**
     * Returns the raycaster that is used for user interaction. This object is shared between all
     * instances of `TransformControls`.
     *
     * @returns {Raycaster} The internal raycaster.
     */
    getRaycaster(): Raycaster;
    /**
     * Returns the transformation mode.
     *
     * @returns {'translate'|'rotate'|'scale'} The transformation mode.
     */
    getMode(): "translate" | "rotate" | "scale";
    /**
     * Sets the given transformation mode.
     *
     * @param {'translate'|'rotate'|'scale'} mode - The transformation mode to set.
     */
    setMode(mode: "translate" | "rotate" | "scale"): void;
    mode: "translate" | "rotate" | "scale" | undefined;
    /**
     * Sets the translation snap.
     *
     * @param {?number} translationSnap - The translation snap to set.
     */
    setTranslationSnap(translationSnap: number | null): void;
    translationSnap: number | null | undefined;
    /**
     * Sets the rotation snap.
     *
     * @param {?number} rotationSnap - The rotation snap to set.
     */
    setRotationSnap(rotationSnap: number | null): void;
    rotationSnap: number | null | undefined;
    /**
     * Sets the scale snap.
     *
     * @param {?number} scaleSnap - The scale snap to set.
     */
    setScaleSnap(scaleSnap: number | null): void;
    scaleSnap: number | null | undefined;
    /**
     * Sets the size of the helper UI.
     *
     * @param {number} size - The size to set.
     */
    setSize(size: number): void;
    size: number | undefined;
    /**
     * Sets the coordinate space in which transformations are applied.
     *
     * @param {'world'|'local'} space - The space to set.
     */
    setSpace(space: "world" | "local"): void;
    space: "world" | "local" | undefined;
}
export class TransformControlsGizmo extends Object3D<import("three").Event> {
    constructor();
    isTransformControlsGizmo: boolean;
    gizmo: {};
    picker: {};
    helper: {};
    updateMatrixWorld(force: any): void;
}
export class TransformControlsPlane extends Mesh<BufferGeometry, import("three").Material | import("three").Material[]> {
    constructor();
    isTransformControlsPlane: boolean;
    updateMatrixWorld(force: any): void;
}
import { Controls } from './Controls.js';
declare class TransformControlsRoot extends Object3D<import("three").Event> {
    constructor(controls: any);
    isTransformControlsRoot: boolean;
    controls: any;
    updateMatrixWorld(force: any): void;
    dispose(): void;
}
import { Vector3 } from 'three';
import { Quaternion } from 'three';
declare function getPointer(event: any): {
    x: number;
    y: number;
    button: any;
};
declare function onPointerDown(event: any): void;
declare function onPointerHover(event: any): void;
declare function onPointerMove(event: any): void;
declare function onPointerUp(event: any): void;
import { Object3D } from 'three';
import { Raycaster } from 'three';
import { BufferGeometry } from 'three';
import { Mesh } from 'three';
export {};
