/**
 * Initial k-way partition via simultaneous BFS from k random seed vertices.
 *
 * Each seed grows its partition outward by FIFO BFS, claiming any neighbour
 * that hasn't been claimed yet. A partition stops growing once its accumulated
 * vertex weight crosses the per-partition target. Any vertices left unassigned
 * — typically because their component was fully consumed by a partition that
 * then hit its cap, or because the graph has more than k components — get
 * assigned to whichever partition is currently lightest.
 *
 * This is a quality-vs-simplicity trade-off relative to METIS's recursive
 * bisection on the coarsest graph. Bisection produces lower edge cuts but
 * costs roughly 5× the code. FM uncoarsening recovers a large fraction of the
 * quality difference, so we ship BFS-growth first and revisit if needed.
 *
 * Writes to `graph.vertex_partition[]` and `graph.partition_weights[]`. Both
 * must already be allocated (call `graph.allocate_partition_state(partition_count)`).
 *
 * @param {import('../MetisGraph.js').MetisGraph} graph the coarsest graph
 * @param {number} partition_count
 * @param {function():number} random
 */
export function initial_kway_bfs(graph: import('../MetisGraph.js').MetisGraph, partition_count: number, random: () => number): void;
//# sourceMappingURL=initial_kway_bfs.d.ts.map