import * as Table from "./table.js";
export type Graph = {
successors: Table.Table;
predecessors: Table.Table;
};
export declare function create(): Graph;
export declare function inDegree(node: number, graph: Graph): number;
export declare function outDegree(node: number, graph: Graph): number;
export declare function degree(node: number, graph: Graph): number;
export type RipNodeResult = {
predecessors: [number, A][];
selfLoop: A | undefined;
successors: [number, A][];
};
export declare function ripNode(node: number, graph: Graph): RipNodeResult;
export declare function setEdge(sourceNode: number, targetNode: number, edgeLabel: A, graph: Graph, combine?: (oldLabel: A, newLabel: A) => A): void;