export interface DependencyObject {
    files?: string[];
    artifacts?: string[];
}
interface GraphStructure<T extends DependencyObject> {
    byLevel: {
        [level: number]: Array<{
            object: T;
            dependencies: T[];
            dependents: T[];
        }>;
    };
    nodeConnections: {
        [key: string]: {
            dependencies: T[];
            dependents: T[];
        };
    };
}
export declare class DependencyGraph<T extends DependencyObject> {
    private nodes;
    private levels;
    constructor();
    private addNode;
    buildGraph(objects: T[]): DependencyGraph<T>;
    private topologicalSort;
    getStructure(): GraphStructure<T>;
}
export {};
