export interface GraphLike { getVertices(): Iterable; getSourceVertices(node: V): Iterable; getTargetVertices(node: V): Iterable; readonly edgeCount: number; readonly vertexCount: number; } export interface Graph extends GraphLike { addEdge(a: V, b: V): void; addVertex(v: V): void; deleteEdge(a: V, b: V): void; getEdges(): Iterable<[V, V]>; hasEdge(a: V, b: V): boolean; } export interface LabeledGraph extends GraphLike { addEdge(a: V, b: V, label: L): void; addVertex(v: V): void; deleteEdge(a: V, b: V, label?: L): void; getEdges(): Iterable<[V, V, L]>; getIncomingEdges(node: V): Iterable<[V, L]>; getOutgoingEdges(node: V): Iterable<[V, L]>; hasEdge(a: V, b: V, label?: L): boolean; } export interface AsyncGraphLike { getSourceVertices(node: V): AsyncIterable; getTargetVertices(node: V): AsyncIterable; getVertices(): AsyncIterable; readonly edgeCount: Promise; readonly vertexCount: Promise; } export interface AsyncGraph extends AsyncGraphLike { addEdge(a: V, b: V): Promise; addVertex(v: V): Promise; deleteEdge(a: V, b: V): Promise; getEdges(): AsyncIterable<[V, V]>; hasEdge(a: V, b: V): Promise; } export interface AsyncLabeledGraph extends AsyncGraphLike { addEdge(a: V, b: V, label: L): Promise; addVertex(v: V): Promise; deleteEdge(a: V, b: V, label?: L): Promise; getEdges(): AsyncIterable<[V, V, L]>; getIncomingEdges(node: V): AsyncIterable>; getOutgoingEdges(node: V): AsyncIterable>; hasEdge(a: V, b: V, label?: L): Promise; } //# sourceMappingURL=types.d.ts.map