///
import React, { ReactNode } from "react";
import { Box3, BufferGeometry, Mesh } from "three";
import { OnFrameCallback } from "./space.js";
import { ExtendedXRMesh } from "./state.js";
/**
* @returns the meshes that are currently tracked by webxr
*/
export declare function useTrackedMeshes(): ReadonlyArray | undefined;
/**
* @returns the meshes tracked by webxr with the specified @param semanticLabel
*/
export declare function useTrackedObjectMeshes(semanticLabel: "desk" | "couch" | "floor" | "ceiling" | "wall" | "door" | "window" | "other" | string): ReadonlyArray | undefined;
/**
* component for rendering a tracked webxr mesh and placing content (children) at the tracked mesh position
*/
export declare const TrackedMesh: React.ForwardRefExoticComponent<{
mesh: ExtendedXRMesh;
children?: ReactNode;
onFrame?: OnFrameCallback | undefined;
} & React.RefAttributes, import("three").Material | import("three").Material[]>>>;
/**
* computes the local bounding box of the mesh and writes it into @param target
*/
export declare function measureXRMesh(mesh: XRMesh, target: Box3): Box3;
/**
* @returns the geometry for a webxr mesh
* @param disposeBuffer specifies whether the buffers should be automatically cleaned up (default: true)
*/
export declare function useTrackedMeshGeometry(mesh: XRMesh, disposeBuffer?: boolean): BufferGeometry;
/**
* component for rendering the geometry of a tracked webxr mesh
* Should be used together with a SpaceGroup
*/
export declare const TrackedMeshGeometry: React.ForwardRefExoticComponent<{
mesh: XRMesh;
} & React.RefAttributes>>;