/**
 * Given a graph and a `vertex_partition[]` containing only 0 and 1, build the
 * two induced subgraphs (one per side) and return them along with vertex-id
 * mappings back to the parent.
 *
 * Each subgraph's CSR contains only the edges with both endpoints on the same
 * side. Cross-edges are dropped — they represent the bisection cut and don't
 * play a role in further recursion.
 *
 * Mirrors `SplitGraphPart` from libmetis/pmetis.c, simplified.
 *
 * @param {import('../MetisGraph.js').MetisGraph} graph fine graph with a 0/1
 *   `vertex_partition[]` populated by `grow_bisection` + `fm_2way`
 * @returns {{
 *   side_0_subgraph: MetisGraph,
 *   side_1_subgraph: MetisGraph,
 *   side_0_subgraph_to_parent: Uint32Array,
 *   side_1_subgraph_to_parent: Uint32Array,
 * }}
 */
export function split_graph_two_way(graph: import('../MetisGraph.js').MetisGraph): {
    side_0_subgraph: MetisGraph;
    side_1_subgraph: MetisGraph;
    side_0_subgraph_to_parent: Uint32Array;
    side_1_subgraph_to_parent: Uint32Array;
};
import { MetisGraph } from "../MetisGraph.js";
//# sourceMappingURL=split_graph_two_way.d.ts.map