///
export type XRSessionEventType = 'sessionstart' | 'sessionend' | 'visibilitychange' | 'frameratechange';
export type XRControllerEventType = 'select' | 'selectstart' | 'selectend' | 'squeeze' | 'squeezeend' | 'squeezestart' | 'disconnected' | 'connected';
export type XRHandEventType = 'pinchstart' | 'pinchend' | 'connected' | 'disconnected';
export type XRSessionEvent = THREE.Event & {
type: Type;
target: XRSession;
};
export type XRControllerEvent = THREE.Event & {
type: Type;
target: any;
data?: XRInputSource;
};
export type XRController = {
controller: THREE.XRTargetRaySpace;
grip: THREE.XRGripSpace;
inputSource: XRInputSource;
};
export type XRHand = {
hand: THREE.XRHandSpace;
inputSource: globalThis.XRHand;
};
export type XRHandEvent = THREE.Event & {
type: Type;
target: Target;
};
export type HitTestCallback = (hitMatrix: THREE.Matrix4, hit: XRHitTestResult) => void;