import { TransformProps } from '../../three_transforms/interfaces'; import { VuerProps } from '../../vuer/interfaces'; import * as THREE from 'three'; export interface BoundingBoxInstance { id: string; position: THREE.Vector3; rotation: THREE.Euler; scale: THREE.Vector3; color: THREE.Color; edgeOpacity: number; wallOpacity: number; } export interface BoundingBoxProviderConfig { edgeWidth: number; maxInstances: number; } interface BoundingBoxContextValue { config: BoundingBoxProviderConfig; register: (instance: BoundingBoxInstance) => void; unregister: (id: string) => void; update: (id: string, updates: Partial) => void; } export declare function useBoundingBoxContext(): BoundingBoxContextValue; export interface BoundingBoxProviderProps extends VuerProps { /** * Width of the box edges * @dial config * @dial-dtype number * @dial-min 0 * @dial-max 0.5 * @dial-step 0.01 * @dial-default 0.05 */ edgeWidth?: number; /** * Maximum number of instances * @dial config * @dial-dtype int * @dial-min 1 * @dial-max 100000 * @dial-step 100 * @dial-default 10000 */ maxInstances?: number; } export declare function BoundingBoxProvider({ children, edgeWidth, maxInstances, }: BoundingBoxProviderProps): import("react/jsx-runtime").JSX.Element; interface BoundingBoxProps extends TransformProps, VuerProps { /** @dial-ignore */ id?: string; /** * Minimum corner of the bounding box [x, y, z] * @dial geometry * @dial-group-grid-cols 2 * @dial-dtype vector3 * @dial-step 0.01 */ min?: [number, number, number]; /** * Maximum corner of the bounding box [x, y, z] * @dial geometry * @dial-group-grid-cols 2 * @dial-dtype vector3 * @dial-step 0.01 */ max?: [number, number, number]; /** * Color of the bounding box * @dial appearance * @dial-dtype color */ color?: string | THREE.Color; /** * Opacity of the edges * @dial appearance * @dial-dtype number * @dial-min 0 * @dial-max 1 * @dial-step 0.01 * @dial-default 0.9 */ edgeOpacity?: number; /** * Opacity of the walls * @dial appearance * @dial-dtype number * @dial-min 0 * @dial-max 1 * @dial-step 0.01 * @dial-default 0.1 */ wallOpacity?: number; } export declare function BoundingBox({ _key, min, max, position: positionProp, rotation, scale: scaleProp, color, edgeOpacity, wallOpacity, }: BoundingBoxProps): import("react/jsx-runtime").JSX.Element; export {};