export declare class Graph { private readonly _nodes; private readonly _indexByNode; private readonly _successors; constructor(nodes: Iterable, invertDirection: boolean, edges: number[][] | ((node: T) => ReadonlySet)); get size(): number; get nodes(): readonly T[]; findRoots(): ReadonlySet; dfsTraversal(root: T, preOrder: boolean, process: (node: T) => void): void; stronglyConnectedComponents(): Graph>; makeDot(includeNode: (n: T) => boolean, nodeLabel: (n: T) => string): string; }