///
import { Object3DEventMap } from 'three';
import { GameObject } from '../ecs/GameObject';
import { GamepadWrapper } from 'gamepad-wrapper';
import { World } from '../ecs/World';
export declare const PRIVATE: unique symbol;
interface ConnectedEventData {
type: 'connected';
data: XRInputSource;
}
interface DisconnectedEventData {
type: 'disconnected';
}
declare type ExtendedEventMap = Object3DEventMap & {
connected: ConnectedEventData;
disconnected: DisconnectedEventData;
};
export declare class XRController extends GameObject {
/** @ignore */
[PRIVATE]: {
handedness: XRHandedness;
connected: boolean;
raySpace: THREE.Object3D;
gamepad: GamepadWrapper;
model: THREE.Object3D;
};
isGroup: boolean;
constructor(world: World, handedness: XRHandedness, player: GameObject);
get connected(): boolean;
get handedness(): XRHandedness;
get gamepad(): GamepadWrapper;
get raySpace(): import("three").Object3D;
get model(): import("three").Object3D;
update(inputSource: XRInputSource, frame: XRFrame, referenceSpace: XRReferenceSpace): void;
connect(inputSource: XRInputSource): void;
disconnect(): void;
updateMatrixWorld(force?: boolean): void;
}
export {};
//# sourceMappingURL=XRController.d.ts.map