///
import React, { ReactNode } from "react";
import { Box3, BufferGeometry, Mesh } from "three";
import { OnFrameCallback } from "./space.js";
import { ExtendedXRPlane } from "./state.js";
/**
* @returns a function to trigger the room setup for webxr tracked planes
*/
export declare function useInitRoomCapture(): (() => Promise) | undefined;
/**
* @returns the planes that are currently tracked by webxr
*/
export declare function useTrackedPlanes(): ReadonlyArray | undefined;
/**
* @returns the planes tracked by webxr with the specified @param semanticLabel
*/
export declare function useTrackedObjectPlanes(semanticLabel: "desk" | "couch" | "floor" | "ceiling" | "wall" | "door" | "window" | "other" | string): ReadonlyArray | undefined;
/**
* component for positioning content (children) at the position of a tracked webxr plane
*/
export declare const TrackedPlane: React.ForwardRefExoticComponent<{
plane: ExtendedXRPlane;
children?: ReactNode;
onFrame?: OnFrameCallback | undefined;
} & React.RefAttributes, import("three").Material | import("three").Material[]>>>;
/**
* computes the local bounding box of the plane and writes it into @param target
*/
export declare function measureXRPlane(plane: XRPlane, target: Box3): Box3;
/**
* @returns the geometry for a webxr plane
* @param disposeBuffer specifies whether the buffers should be automatically cleaned up (default: true)
*/
export declare function useTrackedPlaneGeometry(plane: XRPlane, disposeBuffer?: boolean): BufferGeometry;
/**
* component for rendering the geometry of a tracked webxr plane
* Should be used together with a SpaceGroup
*/
export declare const TrackedPlaneGeometry: React.ForwardRefExoticComponent<{
plane: XRPlane;
} & React.RefAttributes>>;