export declare class DirectedGraph { private readonly _nodes; private readonly _outgoingEdges; static from(nodes: readonly T[], getOutgoing: (node: T) => readonly T[]): DirectedGraph; /** * After this, the graph is guaranteed to have no cycles. */ removeCycles(): { foundCycles: T[]; }; getOutgoing(node: T): readonly T[]; }