import { Object3D } from 'three';
import { DIVERenderer } from '../../../renderer/Renderer';
import { DIVEScene } from '../../../scene/Scene';
export declare class DIVEWebXRController extends Object3D {
    private _renderer;
    private _scene;
    private _session;
    private _frameBuffer;
    private _xrRaycaster;
    private _origin;
    private _crosshair;
    private _touchscreenControls;
    private _handNodeInitialPosition;
    private _xrCamera;
    private _placed;
    private _grabbedObject;
    private _arHitPosition;
    private _arHitQuaternion;
    private _arHitScale;
    private _initialObjectPosition;
    private _initialRaycastHit;
    private _deltaRaycastHit;
    private _touchQuaterion;
    private _touchScale;
    private _scaleThreshold;
    constructor(session: XRSession, renderer: DIVERenderer, scene: DIVEScene);
    Init(): Promise<this>;
    Dispose(): void;
    Update(frame: XRFrame): void;
    private updateHandNode;
    private initOrigin;
    private placeObjects;
    private updateObject;
    private onTouchStart;
    private onTouchMove;
    private onTouchEnd;
    private _startTouchQuaternion;
    private onRotateStart;
    private onRotateMove;
    private _startTouchScale;
    private onPinchStart;
    private onPinchMove;
    private prepareScene;
    private restoreScene;
    private initRaycaster;
}
