export interface Options {
    circular?: boolean;
}
export declare class DepGraph<T> {
    private nodes;
    private outgoingEdges;
    private incomingEdges;
    private circular;
    constructor(opts?: Options);
    size(): number;
    addNode(name: string, data?: T): void;
    removeNode(name: string): void;
    hasNode(name: string): boolean;
    getNodeData(name: string): string | T | undefined;
    setNodeData(name: string, data?: T): void;
    addDependency(from: string, to: string): boolean;
    removeDependency(from: string, to: string): void;
    directDependenciesOf(name: string): string[];
    directDependantsOf(name: string): string[];
    dependenciesOf(name: string, leavesOnly?: boolean): string[];
    dependantsOf(name: string, leavesOnly?: boolean): string[];
    overallOrder(leavesOnly?: boolean): string[];
    entryNodes(): string[];
    directDependentsOf: (name: string) => string[];
    dependentsOf: (name: string, leavesOnly?: boolean) => string[];
}
export declare class DepGraphCycleError extends Error {
    cyclePath: string[];
    constructor(cyclePath: string[]);
}
//# sourceMappingURL=dependency-graph.d.ts.map