import type { BVHVector3, BVHIntersect } from './bvhMath';
export type BVHAttr = {
    array: ArrayLike<number>;
    stride?: number;
    offset?: number;
};
export declare class BVHObject {
    position: BVHAttr;
    indices?: BVHAttr | undefined;
    rootNodePacked?: ArrayBuffer;
    offsetArray?: ArrayLike<number>;
    constructor(position: BVHAttr, indices?: BVHAttr | undefined);
    getPositionCount(): number;
    getPositionByIndex(index: number, target: BVHVector3): BVHVector3;
    createTree(maxTrianglesPerNode: number, maxDepth: number, extents?: number[]): this;
    trianglesInSphere(center: BVHVector3, radius: number): Float32Array;
    intersectRay(rayOrigin: BVHVector3, rayDirection: BVHVector3, threshold?: number, onlyFirst?: boolean, filter?: (intersect: BVHIntersect) => boolean): BVHIntersect[];
}
