// Type definitions for ngraph.graph v18.0.0 // Project: https://github.com/anvaka/ngraph.graph // Definitions by: Nathan Westlake // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare module "ngraph.graph" { import { EventedType } from 'ngraph.events' export type NodeId = string | number export type LinkId = string export interface Link { id: LinkId, fromId: NodeId, toId: NodeId, data: Data } export interface Node { id: NodeId, links: Link[], data: Data } export interface Graph { addNode: (node: NodeId, data?: NodeData) => Node addLink: (from: NodeId, to: NodeId, data?: LinkData) => Link removeLink: (link: Link) => boolean removeNode: (nodeId: NodeId) => boolean getNode: (nodeId: NodeId) => Node | undefined hasNode: (nodeId: NodeId) => Node | undefined getLink: (fromNodeId: NodeId, toNodeId: NodeId) => Link | null hasLink: (fromNodeId: NodeId, toNodeId: NodeId) => Link | null getNodesCount: () => number getLinksCount: () => number getNodeCount: () => number getLinkCount: () => number getLinks: (nodeId: NodeId) => Link[] | null /** To stop the iteration return true in the callback */ forEachNode: (callbackPerNode: (node: Node) => void | undefined | null | boolean) => void forEachLinkedNode: (nodeId: NodeId, callbackPerNode: (node: Node, link: Link) => void, oriented: boolean) => void forEachLink: (callbackPerLink: (link: Link) => void) => void beginUpdate: () => void endUpdate: () => void clear: () => void } export default function createGraph(options?: { multigraph: boolean }): Graph & EventedType }