/**
 * Bisect a graph into two partitions with `target_weight_for_partition_0` weight
 * landing in partition 0. Runs `bisection_trial_count` independent BFS-grow + FM
 * trials and keeps the best (lowest-cut) result.
 *
 * Mirrors `Init2WayPartition` from libmetis/initpart.c, single-constraint cut
 * branch only.
 *
 * **All scratch state is taken from the supplied `BisectionScratch`**:
 *   - the 2-way refinement arrays (`internal_degree`, `external_degree`,
 *     boundary list, `partition_weights[2]`),
 *   - the FM heaps and pass-local arrays,
 *   - the best-cut snapshot,
 *   - and `vertex_partition` itself, which the caller borrows from the
 *     scratch's stack pool and releases after using the result.
 *
 * The k-way bookkeeping arrays (`neighbor_partition_*`, `neighbor_partition_pool`)
 * are NOT set up here — bisection doesn't need them. They get allocated by
 * `allocate_partition_state(k)` once recursive bisection is done and the graph
 * moves into k-way refinement.
 *
 * On return, `graph.vertex_partition[]` contains 0/1 in `[0, vertex_count)` and
 * `graph.current_cut` is the bisection cut. The vertex_partition slot may be
 * sized larger than vertex_count — only the prefix is meaningful.
 *
 * @param {import('../MetisGraph.js').MetisGraph} graph
 * @param {Uint32Array} vertex_partition pre-zeroed slot from the scratch pool;
 *   typically obtained via `scratch.take_vertex_partition_slot(graph.vertex_count)`
 * @param {number} target_weight_for_partition_0
 * @param {number} bisection_trial_count number of independent grow+FM trials
 * @param {number} fm_pass_count FM passes per trial
 * @param {number} ub_factor balance tolerance for `grow_bisection`
 * @param {function():number} random
 * @param {import('./BisectionScratch.js').BisectionScratch} scratch
 */
export function bisect_graph(graph: import('../MetisGraph.js').MetisGraph, vertex_partition: Uint32Array, target_weight_for_partition_0: number, bisection_trial_count: number, fm_pass_count: number, ub_factor: number, random: () => number, scratch: import('./BisectionScratch.js').BisectionScratch): void;
//# sourceMappingURL=bisect_graph.d.ts.map