/** * https://github.com/datavis-tech/graph-data-structure */ export type NodeId = string; export type EdgeWeight = number; export type EncodedEdge = string; export interface Serialized { nodes: { id: NodeId; }[]; links: { source: NodeId; target: NodeId; weight: EdgeWeight; }[]; } export declare class CycleError extends Error { constructor(message: string); } export declare function Graph(serialized?: Serialized): { addNode: (node: NodeId) => any; removeNode: (node: NodeId) => any; nodes: () => NodeId[]; adjacent: (node: NodeId) => NodeId[]; addEdge: (u: NodeId, v: NodeId, weight?: EdgeWeight) => any; removeEdge: (u: NodeId, v: NodeId) => any; hasEdge: (u: NodeId, v: NodeId) => boolean; setEdgeWeight: (u: NodeId, v: NodeId, weight: EdgeWeight) => any; getEdgeWeight: (u: NodeId, v: NodeId) => EdgeWeight; indegree: (node: NodeId) => number; outdegree: (node: NodeId) => number; depthFirstSearch: (sourceNodes?: NodeId[], includeSourceNodes?: boolean, errorOnCycle?: boolean) => string[]; hasCycle: () => boolean; lowestCommonAncestors: (node1: NodeId, node2: NodeId) => string[]; topologicalSort: (sourceNodes?: NodeId[], includeSourceNodes?: boolean) => string[]; shortestPath: (source: NodeId, destination: NodeId) => string[] & { weight?: number | undefined; }; shortestPaths: (source: NodeId, destination: NodeId) => (string[] & { weight?: number | undefined; })[]; serialize: () => Serialized; deserialize: (serialized: Serialized) => any; }; export type GraphInstance = ReturnType; export default Graph;