import { Camera, WebGLRenderer } from 'three';
import { CoreWebXRARControllerOptions } from '../../../core/webXR/webXRAR/CommonAR';
import { CoreWebXRVRControllerOptions } from '../../../core/webXR/webXRVR/CommonVR';
import type { CoreWebXRARController } from '../../../core/webXR/webXRAR/CoreWebXRARController';
import type { CoreWebXRVRController } from '../../../core/webXR/webXRVR/CoreWebXRVRController';
import type { BaseCoreWebXRController } from '../../../core/webXR/_BaseCoreWebXRController';
import type { PolyScene } from '../PolyScene';
type ARControllerCreateFunction = (renderer: WebGLRenderer, camera: Camera, canvas: HTMLCanvasElement, options: CoreWebXRARControllerOptions) => CoreWebXRARController;
type VRControllerCreateFunction = (renderer: WebGLRenderer, camera: Camera, canvas: HTMLCanvasElement, options: CoreWebXRVRControllerOptions) => CoreWebXRVRController;
export declare class SceneWebXRController {
    protected scene: PolyScene;
    constructor(scene: PolyScene);
    /**
     *
     * WebXR
     *
     */
    private _activeXRController;
    private _setActiveXRController;
    activeXRController(): BaseCoreWebXRController | null;
    /**
     *
     * WebXR AR
     *
     */
    private _ARControllerCreateFunction;
    private _activeARController;
    setARControllerCreationFunction(func: ARControllerCreateFunction): void;
    ARControllerCreateFunction(): ARControllerCreateFunction | undefined;
    setActiveARController(ARController: CoreWebXRARController | null): void;
    activeARController(): CoreWebXRARController | null;
    /**
     *
     * WebXR VR
     *
     */
    private _VRControllerCreateFunction;
    private _activeVRController;
    setVRControllerCreationFunction(func: VRControllerCreateFunction): void;
    VRControllerCreateFunction(): VRControllerCreateFunction | undefined;
    setActiveVRController(VRController: CoreWebXRVRController | null): void;
    activeVRController(): CoreWebXRVRController | null;
}
export {};
