/**
 * Contract a matched graph into its coarse counterpart.
 *
 * Each matched pair (vertex, partner) collapses to a single coarse vertex whose
 * weight is the sum of both endpoints. Parallel edges to the same coarse
 * neighbour merge into one edge with summed weight. Self-loops produced by
 * collapsing the matched pair itself are dropped.
 *
 * Mirrors `CreateCoarseGraphNoMask` from libmetis/coarsen.c. The masked variant
 * (open-addressing hash with a power-of-two mask) is skipped — the unmasked
 * flat-htable path is fast enough at our scale and is simpler.
 *
 * Precondition: `match_shem` has run and produced `graph.coarse_vertex_map`
 * indexed such that processing vertices in order v=0..vertex_count increments
 * through coarse ids 0..coarse_vertex_count-1.
 *
 * @param {MetisGraph} graph fine graph (input)
 * @param {number} coarse_vertex_count
 * @param {Uint32Array} partner_of_vertex `[v]` = match partner of v, or v itself if alone
 * @returns {MetisGraph} the coarse graph (also assigned to `graph.coarser_graph`)
 */
export function create_coarse_graph(graph: MetisGraph, coarse_vertex_count: number, partner_of_vertex: Uint32Array): MetisGraph;
import { MetisGraph } from "../MetisGraph.js";
//# sourceMappingURL=create_coarse_graph.d.ts.map