import { Graph } from '../graph/graph'; import { KCoreResult } from '../types/clustering-types'; import { Edge, Node } from '../types/graph'; /** * K-Core Decomposition using Batagelj-Zaversnik algorithm. * * Computes the core number for each node and extracts all k-cores from k=1 to degeneracy. * Core number = highest k such that node belongs to k-core. * * Algorithm: * 1. Compute initial degrees for all nodes * 2. Sort nodes by degree (using bin sort for O(n) complexity) * 3. Process nodes in degree order, removing each and updating neighbors * 4. Track core number when node is removed (= current degree at removal time) * 5. Construct nested k-core hierarchy from core numbers * @param graph - Input graph (directed or undirected) * @returns Result containing cores map, degeneracy, and core numbers * @example * ```typescript * const result = kCoreDecomposition(graph); * if (result.ok) { * const { cores, degeneracy, coreNumbers } = result.value; * console.log(`Graph degeneracy: ${degeneracy}`); * const core3 = cores.get(3); * if (core3) { * console.log(`3-core has ${core3.size} nodes`); * } * } * ``` */ export declare const kCoreDecomposition: (graph: Graph) => KCoreResult; //# sourceMappingURL=k-core.d.ts.map