import { type BuildArtifact, BuildRegistry } from "./evaluator/builtins/build";
export interface BuildOptions {
    buildFile: string;
    targetTriple?: string;
    verbose?: boolean;
    dryRun?: boolean;
    listSteps?: boolean;
    steps?: string[];
    defines?: Record<string, string>;
    cCompiler?: string;
    sysroot?: string;
    summary?: boolean;
}
export declare function getArtifactOutputFileName(artifact: Pick<BuildArtifact, "kind" | "name" | "target"> & Partial<Pick<BuildArtifact, "cFlags">>, targetTriple?: string): string;
export declare function stageRuntimeFiles(runtimeFiles: readonly string[], outputDir: string, verbose?: boolean): string[];
export declare function runBuild(options: BuildOptions): Promise<void>;
export interface DAGNode {
    name: string;
    kind: "artifact" | "test" | "run" | "step" | "doc";
    dependsOn: string[];
}
export declare function buildDAG(registry: BuildRegistry, rootStepName: string): DAGNode[];
export declare function detectCycle(dag: DAGNode[]): string[] | null;
export declare function computeDependencyHash(registry: BuildRegistry, depName: string, projectDir: string): string;
