import type { GeometryBVH } from 'three-mesh-bvh' with { "resolution-mode": "import" }; import type { BVHComputeData } from 'three-mesh-bvh/webgpu' with { "resolution-mode": "import" }; import { type BufferGeometry } from 'three/webgpu'; import type { TSLFloatNode, TSLVec3Node, TSLVec4Node } from '../../types/tsl.cjs'; import { type WGSLNativeFunction } from '../../internal/three/wgsl.cjs'; export interface BVHSignedDistanceParameters { point: TSLVec3Node; maxDistance: TSLFloatNode; } export type BVHSignedDistanceFunction = WGSLNativeFunction; /** * Binds an explicitly supplied triangle BVH to the upstream GPU packer without * mutating `geometry.boundsTree` or asking the packer to regenerate the tree. */ export interface GeometryBVHComputeData extends BVHComputeData { readonly geometry: BufferGeometry; readonly geometryBVH: GeometryBVH; } /** Create and populate upstream GPU storage for one explicit triangle BVH. */ export declare function createGeometryBVHComputeData(geometry: BufferGeometry, bvh: GeometryBVH): GeometryBVHComputeData; /** True when a value exposes the new three-mesh-bvh compute-data contract. */ export declare function isBVHComputeData(value: unknown): value is BVHComputeData; /** Release buffers despite the incomplete 0.9.11 public declaration surface. */ export declare function disposeBVHComputeData(value: BVHComputeData | null): void; /** * Wrap the upstream result struct in the compact tuple used by three-blocks: * `vec4(signedDistance, faceNormal.xyz)`. */ export declare function createBVHSignedDistanceFn(bvhData: BVHComputeData): BVHSignedDistanceFunction;