/// <reference types="webxr" />
import { WebGLRenderer, Camera } from 'three';
import { PolyScene } from '../../../engine/scene/PolyScene';
import { CoreWebXRVRControllerOptions } from './CommonVR';
import { CoreWebXRControllerContainer } from '../CoreWebXRControllerContainer';
import { BaseCoreWebXRController, OnWebXRSessionStartedCallback } from '../_BaseCoreWebXRController';
export declare class CoreWebXRVRController extends BaseCoreWebXRController {
    protected options: CoreWebXRVRControllerOptions;
    private _baseReferenceSpace;
    constructor(scene: PolyScene, renderer: WebGLRenderer, camera: Camera, canvas: HTMLCanvasElement, options: CoreWebXRVRControllerOptions);
    mount(): void;
    requestSession(sessionInit: XRSessionInit, onSessionStarted: OnWebXRSessionStartedCallback): Promise<void | undefined>;
    protected _onSessionStart(): void;
    protected _onSessionEnd(): void;
    baseReferenceSpace(): XRReferenceSpace | null;
    setReferenceSpace(referenceSpace: XRReferenceSpace): void;
    protected _addControllerEvents(controllerContainer: CoreWebXRControllerContainer, controllerIndex: number): void;
    createButton(): HTMLAnchorElement | HTMLButtonElement;
    attachButton(parentElement: HTMLElement, buttonElement: HTMLElement): void;
}
