import { BaseEvent, Camera, EventDispatcher, Ray, WebGLRenderer, XRTargetRaySpace } from 'three';
import { BaseXRSessionEventName } from './Common';
import { PolyScene } from '../../engine/scene/PolyScene';
export interface BaseCoreXRControllerEvent extends BaseEvent {
    controllerContainer: CoreWebXRControllerContainer;
}
export declare function webXRControllerName(controllerIndex: number): string;
interface CoreWebXRControllerContainerEventMap {
    [BaseXRSessionEventName.CONNECTED]: any;
    [BaseXRSessionEventName.DISCONNECTED]: any;
    [BaseXRSessionEventName.SELECT]: any;
    [BaseXRSessionEventName.SELECT_START]: any;
    [BaseXRSessionEventName.SELECT_END]: any;
}
export declare class CoreWebXRControllerContainer extends EventDispatcher<CoreWebXRControllerContainerEventMap> {
    readonly scene: PolyScene;
    readonly renderer: WebGLRenderer;
    readonly index: number;
    readonly ray: Ray;
    readonly controller: XRTargetRaySpace;
    constructor(scene: PolyScene, renderer: WebGLRenderer, index: number);
    initialize(camera: Camera | null): void;
}
export {};
