import { XRController, XRControllerEvent, XRPoseEvent, ZeaKeyboardEvent, ZeaPointerEvent } from '@zeainc/zea-engine';
import { AppData } from '../../../types/types';
import { PointerTool } from './PointerTool';
interface UIIntersection {
    clientX: number;
    clientY: number;
}
/**
 * Class representing a VR UI tool.
 *
 * @extends BaseTool
 */
declare class VRUITool extends PointerTool {
    private vrUIDOMElement;
    private controllerUI;
    private uiOpen;
    private uiOpenedByMouse;
    private triggerHeld;
    private visibilityStates;
    private uiController;
    private element;
    private listenerIds;
    openUIKeyboardHotkey: string;
    openUiAngleTolerance: number;
    /**
     * Create a VR UI tool.
     * @param appData - The appData value.
     * @param vrUIDOMElement - The  dom element we will use as the VR UI
     */
    constructor(appData: AppData, vrUIDOMElement: HTMLElement);
    /**
     * The getName method.
     *
     * @return {string} The return value.
     */
    getName(): string;
    /**
     * The activateTool method.
     */
    activateTool(): void;
    /**
     * The deactivateTool method.
     */
    deactivateTool(): void;
    /**
     * The openUI method.
     * @param uiController - The uiController param.
     * @param : VRController - The pointerController param.
     * @param headXfo - The headXfo param.
     */
    openUI(uiController: XRController, pointerController: XRController): void;
    private childAdded;
    private restoreVisibility;
    /**
     * The closeUI method.
     */
    closeUI(): void;
    private calcUIIntersection;
    private getDOMElementFromPoint;
    /**
     * The sendEventToUI method.
     * @param eventName - The eventName param.
     * @param args - The args param.
     * @return The return value.
     */
    sendEventToUI(controller: XRController, element: Element, eventName: string, hit: UIIntersection, args?: Record<string, any>): void;
    /**
     * The onXRControllerButtonDown method.
     * @param event - The event param.
     */
    onPointerDown(event: XRControllerEvent): void;
    /**
     * Event fired when a pointing device button is clicked.
     *
     * @param event - The event param.
     */
    onPointerClick(event: ZeaPointerEvent): void;
    onPointerDoubleClick(event: ZeaPointerEvent): void;
    /**
     * The onVRControllerButtonUp method.
     * @param event - The event param.
     */
    onPointerUp(event: ZeaPointerEvent): void;
    /**
     * The onXRPoseChanged method.
     * @param event - The event param.
     */
    onPointerMove(event: XRPoseEvent): void;
    /**
     * Event fired when the user presses down a key on the keyboard.
     *
     * @param event - The event param.
     */
    onKeyDown(event: ZeaKeyboardEvent): void;
    /**
     * Event fired when the user releases a key on the keyboard.
     *
     * @param event - The event param.
     */
    onKeyUp(event: ZeaKeyboardEvent): void;
}
export default VRUITool;
export { VRUITool };
//# sourceMappingURL=VRUITool.d.ts.map