///
///
import GraphEdge from "./graph-edge";
import GraphVertex from "./graph-vertex";
/**
* Here be dragons.
*/
export declare class Graph {
readonly isDirected: boolean;
readonly edges: Map>;
readonly vertices: Map>;
constructor(isDirected?: boolean);
static getNeighbors(this: void, graphVertex: GraphVertex): GraphVertex[];
addVertex(graphVertex: GraphVertex): this;
getVertexByKey(key: string): GraphVertex | undefined;
getAllEdges(): GraphEdge[];
getAllVertices(): GraphVertex[];
addEdge(graphEdge: GraphEdge): this;
deleteEdge(graphEdge: GraphEdge): this;
findEdge(startVertex: GraphVertex, finishVertex: GraphVertex): GraphEdge | undefined;
getWeight(): number;
reverse(): this;
getVerticesIndices(): Map;
getAdjacencyMatrix(shouldThrow?: boolean): number[][];
}