/**
 * @private
 */
declare const DEPENDENCIES_SYM: unique symbol;
/**
 * @private
 */
declare const DEPENDENTS_SYM: unique symbol;
/**
 * @private
 */
interface GraphEntry {
    [DEPENDENCIES_SYM]?: Array<GraphEntry>;
    [DEPENDENTS_SYM]?: Array<GraphEntry>;
}
/**
 * @private
 */
declare class DependencyGraph<GraphNode extends GraphEntry> {
    private static readonly NO_DEPENDENCIES;
    removeNode(node: GraphNode): void;
    addDependency(from: GraphNode, to: GraphNode): void;
    directDependenciesOf(node: GraphNode): ReadonlyArray<GraphNode>;
    private static dependencies;
    private static dependents;
}
export { DependencyGraph, GraphEntry, DEPENDENCIES_SYM, DEPENDENTS_SYM };
