/**
 * Knock holes in the walkable triangle soup wherever an agent of the given height would not fit under
 * overhead geometry.
 *
 * Approach: subdivide each candidate triangle to a resolution tied to the agent's footprint, cast an
 * upward clearance ray from each sub-triangle centroid against the source geometry, and keep only the
 * sub-triangles that have clearance. Fully-clear triangles are emitted unchanged (no subdivision), so
 * the common case adds no triangles; fully-blocked triangles are dropped; partially-blocked triangles
 * are replaced by their clear sub-triangles. Accuracy is bounded by the sampling resolution.
 *
 * The `triangles` array is rewritten in place with the surviving triangles.
 *
 * @param {BVH} bvh source-geometry BVH (leaves carry source face IDs)
 * @param {BinaryTopology} source source mesh, used to resolve face IDs to triangle vertices
 * @param {number} agent_height
 * @param {number} agent_radius
 * @param {number} triangle_count number of triangles currently in `triangles`
 * @param {number[]} triangles flat XYZ soup, 9 floats per triangle
 * @param {Vector3} up world up direction
 * @returns {number} new triangle count
 */
export function enforce_agent_height_clearance({ bvh, source, agent_height, agent_radius, triangle_count, triangles, up, }: BVH): number;
//# sourceMappingURL=enforce_agent_height_clearance.d.ts.map