/**
 * Collect every tet sharing the edge (v_a, v_b), starting from a tet that's
 * already known to contain the edge. Walks the ring of tets around the edge
 * by following face-neighbours through the two faces of each tet that
 * contain both endpoints.
 *
 * Output is written to `result[result_offset..result_offset + count - 1]`
 * in walk order; the starting tet is first. For an INTERIOR edge (every
 * face neighbour exists) the walk forms a closed cycle visiting each
 * incident tet once; the function returns the count and `out_closed[0]`
 * is set to 1. For a BOUNDARY edge (one or both walk directions hit
 * INVALID_NEIGHBOUR) the walk continues from `start_tet` in the OTHER
 * direction; the function still returns every tet it visited, but
 * `out_closed[0]` is set to 0 so callers that need a proper ring (e.g.
 * the 3-2 flip, which is only valid on closed rings) can reject the input.
 *
 * Cost: O(ring_size), one or two neighbour-hops per tet — much cheaper than
 * scanning the whole mesh, which is why callers should prefer this over
 * {@link tetrahedral_mesh_find_tets_attached_to_vertex} when they already
 * have a starting tet.
 *
 * @param {number[]} result
 * @param {number} result_offset
 * @param {TetrahedralMesh} mesh
 * @param {number} start_tet — must contain both v_a and v_b
 * @param {number} v_a
 * @param {number} v_b
 * @param {number[]} out_closed — 1-element array; set to 1 if the walk
 *        closed (interior edge), 0 if either direction hit a boundary face.
 *        Callers that need a closed-ring guarantee must inspect this.
 * @returns {number} number of tets written (always ≥ 1 — the start_tet)
 */
export function tetrahedral_mesh_find_tets_around_edge(result: number[], result_offset: number, mesh: TetrahedralMesh, start_tet: number, v_a: number, v_b: number, out_closed: number[]): number;
//# sourceMappingURL=tetrahedral_mesh_find_tets_around_edge.d.ts.map