export type NodeID = string | number; export type Node = { id: NodeID; priority: number; }; type NextNodeCandidate = { index: number | null; mean_priority_of_succcessors: number; priority: number; }; export default class Graph { node_ids: NodeID[]; nodes: Node[]; adjacency_matrix: (0 | 1)[][]; indexes: number[]; front: number[]; visited: number[]; static MAX_PRIORITY: number; constructor(); addNode(id: NodeID, priority: number): void; getNoOfNodes(): number; addEdge(id_i: NodeID, id_j: NodeID): void; _getIndexesOfNodePair(id_i: NodeID, id_j: NodeID): [number, number]; pathExists(id_i: NodeID, id_j: NodeID): boolean; _pathExists(i: number, j: number): boolean; bestFirstSearch(): NodeID[]; _areAllSuccessorsVisited(i: number): boolean; _isVisited(i: number): boolean; _isNodeWithoutPredecessors(i: number): boolean; _getNextNode(): { front_node: number | null; next_node: number | null; }; _lookForNextNodeInCandidates(candidates: Iterable): NextNodeCandidate; _meanPriorityOfSuccessors(i: number): number; } export {};