import { Vertex as V, Edge as E, Graph as G, DirectionGraph as DG, UndirectionGraph as UG, F, S } from '../typings'; declare class Graph implements G { vertexMap: G['vertexMap']; adjMatrix: G['adjMatrix']; adjTable: G['adjTable']; constructor(); createVertex(v: T): { data: T; inDegree: number; outDegree: number; status: string; dTime: number; fTime: number; }; createEdge(a: T, b: T): { data: string; start: V; end: V; weight: number; status: string; }; putVertex(v: T): void; edgeList(): E[]; removeVertex(p: T): V; reset(p?: S): void; _bfs(vertex: V, cb: F): void; bfs(data: T, cb: F): void; _dfs(vertex: V, cb: F): void; dfs(data: T, cb: F): void; shortestPath(data: T): { distance: Map; predecessors: Map; }; getPath(from: T, to: T): T[]; } declare class DirectionGraph extends Graph implements DG { constructor(); putEdge(a: T, b: T): void; removeEdge(a: T, b: T): E; } declare class UndirectionGraph extends Graph implements UG { constructor(); putEdge(a: T, b: T): void; removeEdge(a: T, b: T): any[]; } export { DirectionGraph, UndirectionGraph, };