d3-graph-controller
Version:
A TypeScript library for visualizing and simulating directed, interactive graphs.
25 lines (24 loc) • 906 B
text/typescript
import { GraphLink } from './link.mjs';
import { GraphNode } from './node.mjs';
/**
* Type token for nodes.
*/
export type NodeTypeToken = string;
/**
* Graph containing nodes and links.
*/
export interface Graph<T extends NodeTypeToken = NodeTypeToken, Node extends GraphNode<T> = GraphNode<T>, Link extends GraphLink<T, Node> = GraphLink<T, Node>> {
/**
* The nodes of the graph.
*/
readonly nodes: Node[];
/**
* The links of the graph.
*/
readonly links: Link[];
}
/**
* Define a graph with type inference.
* @param data - The nodes and links of the graph. If either are omitted, they default to an empty array.
*/
export declare function defineGraph<T extends NodeTypeToken = NodeTypeToken, Node extends GraphNode<T> = GraphNode<T>, Link extends GraphLink<T, Node> = GraphLink<T, Node>>({ nodes, links }: Partial<Graph<T, Node, Link>>): Graph<T, Node, Link>;