///
import { XIntersection } from "@coconut-xr/xinteraction";
import { GroupProps } from "@react-three/fiber";
import React, { MutableRefObject } from "react";
import { ReactNode } from "react";
import { ColorRepresentation, Vector3 } from "three";
/**
* marks its children as teleportable
*/
export declare function TeleportTarget({ children, ...props }: {
children?: ReactNode;
} & GroupProps): React.JSX.Element;
export declare function isTeleportTarget(intersection: XIntersection): boolean;
/**
* hand for pointing to teleportable objects
* is activated when the pinch gesture is detected
* includes a cursor and a downward bend ray visualization
*/
export declare function TeleportHand({ hand, inputSource, children, onTeleport, teleportSoundUrl, teleportSoundVolume, childrenAtJoint, ...pointerProps }: {
hand: XRHand;
inputSource: XRInputSource;
children?: ReactNode;
id: number;
rayColor?: ColorRepresentation;
rayOpacity?: number;
raySize?: number;
cursorColor?: ColorRepresentation;
cursorSize?: number;
cursorOpacity?: number;
childrenAtJoint?: XRHandJoint;
onTeleport?: (point: Vector3) => void;
filterIntersections?: (intersections: any[]) => any[];
teleportSoundUrl?: string;
teleportSoundVolume?: number;
}): React.JSX.Element;
/**
* controller for pointing to teleportable objects
* is activated when the pinch gesture is detected
* includes a cursor and a downward bend ray visualization
*/
export declare function TeleportController({ inputSource, children, onTeleport, teleportSoundUrl, teleportSoundVolume, ...pointerProps }: {
inputSource: XRInputSource;
children?: ReactNode;
id: number;
rayColor?: ColorRepresentation;
raySize?: number;
rayOpacity?: number;
cursorColor?: ColorRepresentation;
cursorSize?: number;
cursorOpacity?: number;
onTeleport?: (point: Vector3) => void;
filterIntersections?: (intersections: any[]) => any[];
teleportSoundUrl?: string;
teleportSoundVolume?: number;
}): React.JSX.Element;
export declare function TeleportPointer({ rayColor, raySize, filterIntersections: customFilterIntersections, id, currentIntersectionRef, cursorColor, cursorSize, cursorOpacity, inputSource, }: {
inputSource: XRInputSource;
rayColor?: ColorRepresentation;
rayOpacity?: number;
raySize?: number;
filterIntersections?: (intersections: any[]) => any[];
currentIntersectionRef: MutableRefObject;
cursorColor?: ColorRepresentation;
cursorOpacity?: number;
cursorSize?: number;
id: number;
}): React.JSX.Element;