export class GeometrySpatialQueryAccelerator {
    constructor(cache_size?: number);
    /**
     * @private
     * @type {Cache<THREE.BufferGeometry, BinaryUint32BVH>}
     */
    private cache;
    /**
     *
     * @param {number} value in bytes
     */
    set cache_size(value: number);
    /**
     *
     * @return {number} in bytes
     */
    get cache_size(): number;
    /**
     *
     * @param {THREE.BufferGeometry} geometry
     * @param {Plane[]} planes
     * @returns {boolean} true means some overlap exists, false otherwise
     */
    queryContainmentViaClippingPlanes(geometry: THREE.BufferGeometry, planes: Plane[]): boolean;
    /**
     *
     * @param {SurfacePoint3} destination
     * @param {THREE.BufferGeometry} geometry
     * @param {number[]|ArrayLike<number>|Float32Array} ray 6 component vector, [origin_x, origin_y, origin_z, direction_x, direction_y, direction_z]
     * @return {boolean}
     */
    queryRaycastNearest_array(destination: SurfacePoint3, geometry: THREE.BufferGeometry, ray: number[] | ArrayLike<number> | Float32Array): boolean;
    /**
     *
     * @param {SurfacePoint3} destination
     * @param {THREE.BufferGeometry} geometry
     * @param {number} ray_origin_x
     * @param {number} ray_origin_y
     * @param {number} ray_origin_z
     * @param {number} ray_direction_x
     * @param {number} ray_direction_y
     * @param {number} ray_direction_z
     * @return {boolean}
     */
    queryRaycastNearest_primitive(destination: SurfacePoint3, geometry: THREE.BufferGeometry, ray_origin_x: number, ray_origin_y: number, ray_origin_z: number, ray_direction_x: number, ray_direction_y: number, ray_direction_z: number): boolean;
    /**
     * Get the nearest ray intersection
     * @param {SurfacePoint3} destination
     * @param {THREE.BufferGeometry} geometry
     * @param {Vector3} ray_origin
     * @param {Vector3} ray_direction
     * @returns {boolean} true if hit detected, false otherwise
     */
    queryRaycastNearest(destination: SurfacePoint3, geometry: THREE.BufferGeometry, ray_origin: Vector3, ray_direction: Vector3): boolean;
    /**
     * Destroys cache for a given geometry, useful for when geometry changes and cache needs to be invalidated
     * @param {THREE.BufferGeometry} geometry
     * @returns {boolean}
     */
    cache_remove_geometry(geometry: THREE.BufferGeometry): boolean;
    /**
     * NOTE: do not modify the BVH
     * @param {THREE.BufferGeometry} geometry
     * @returns {BinaryUint32BVH}
     */
    acquire_bvh(geometry: THREE.BufferGeometry): BinaryUint32BVH;
    /**
     * @private
     * @param {THREE.BufferGeometry} geometry
     * @returns {BinaryUint32BVH}
     */
    private __build_bvh;
}
export namespace GeometrySpatialQueryAccelerator {
    let INSTANCE: GeometrySpatialQueryAccelerator;
}
import { BinaryUint32BVH } from "../../../../../core/bvh2/binary/2/BinaryUint32BVH.js";
//# sourceMappingURL=GeometrySpatialQueryAccelerator.d.ts.map