export declare class BVH {
    readonly root: number

    node_capacity: number

    readonly data_buffer: ArrayBuffer

    allocate_node(): number

    release_node(node: number): void

    insert_leaf(node: number): void

    remove_leaf(node: number): void

    node_is_leaf(node: number): boolean

    collect_nodes_all(destination: ArrayLike<number>, destination_offset: number): void

    node_set_aabb_primitive(node_id: number, x0: number, y0: number, z0: number, x1: number, y1: number, z1: number): void

    node_set_aabb(node: number, aabb: ArrayLike<number>): void

    node_get_aabb(node: number, aabb: ArrayLike<number>): void

    node_set_user_data(node: number, data: number): void

    node_get_user_data(node: number): number

    node_set_child1(node: number, child1: number): void

    node_get_child1(node: number): number

    node_set_child2(node: number, child1: number): void

    node_get_child2(node: number): number

    node_set_parent(node: number, parent: number): void

    node_get_parent(node: number): number

    node_set_height(node: number, height: number): void

    node_get_height(node: number): number

    node_move_aabb(node: number, new_aabb: ArrayLike<number>): void

    swap_nodes(node_a_id: number, node_b_id: number): boolean

    release_all(): void

    trim(): void
}
