/**
 * @license
 * Copyright 2022-2026 Greg Lauckhart <greg@lauckhart.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { Package } from "../util/package.js";
import { ProjectBuilder } from "./project-builder.js";
import { BuildInformation, Project } from "./project.js";
/**
 * Graph of dependencies for workspace packages.
 *
 * We use this information to determine which packages are "dirty" and need rebuild.  In the future we can also use for
 * parallel build, only tricky part there is showing status.
 */
export declare class Graph {
    #private;
    readonly nodes: Graph.Node[];
    readonly root: Package;
    protected constructor(root: Package, nodes: Graph.Node[]);
    get(name: string): Graph.Node;
    static load(pkg?: Package): Promise<Graph>;
    static forProject(path: string): Promise<Graph | undefined>;
    build(builder: ProjectBuilder): Promise<void>;
    display(): void;
}
export declare namespace Graph {
    interface Node {
        pkg: Package;
        project: Project;
        dependencies: Node[];
        buildTime: number;
        info: BuildInformation;
        modifyTime: number;
        isDirty: boolean;
    }
}
//# sourceMappingURL=graph.d.ts.map