/**
 * Kill every edge whose endpoints are within `max_distance` of each other —
 * including any pre-existing self-loops (v1 === v2). Adjacent faces are
 * cascaded through {@link bt_edge_kill}, so a sliver triangle (one short
 * edge, two longer ones) loses the short edge and its face here, and the
 * other two edges are left orphan for the standard cleanup pass to remove.
 *
 * The intended pre-pass before {@link bt_merge_verts_by_distance}. The merge
 * uses `bt_vertex_replace` internally, which produces a self-loop edge if
 * the two vertices it's collapsing are directly edge-connected — and
 * self-loops corrupt the disk cycle in ways that hang the downstream
 * `bt_mesh_fuse_duplicate_edges` walker. Killing the short edges up front
 * means the merge never sees a direct-edge pair, so it never produces a
 * self-loop, so the fuse pass terminates cleanly.
 *
 * @param {BinaryTopology} mesh
 * @param {number} [max_distance] inclusive endpoint distance; defaults match
 *                                {@link bt_merge_verts_by_distance}
 * @returns {number} number of edges killed
 */
export function bt_mesh_kill_short_edges(mesh: BinaryTopology, max_distance?: number): number;
//# sourceMappingURL=bt_mesh_kill_short_edges.d.ts.map