import type { ProductGraph } from '../graph/graph-types.js'; import type { Plan } from '../planner/plan-types.js'; export interface BuildState { readonly version: string; readonly lastCompiled: string; readonly sourceHash: string; readonly graphHash: string; readonly checksum: string; } export interface LockInfo { readonly pid: number; readonly timestamp: string; } /** * Ensure the .prodara/ directory exists. * Creates a .gitignore to exclude transient files (runs/, temp files). */ export declare function ensureBuildDir(root: string): string; /** * Read the previous product graph from build state, if it exists. */ export declare function readPreviousGraph(root: string): ProductGraph | null; /** * Clean up any leftover temp files from a failed write. */ export declare function cleanupTempFiles(root: string): void; /** * Write build state files atomically. * Writes to temp files first, then renames all three. * If any rename fails, cleans up temp files. */ export declare function writeBuildState(root: string, graph: ProductGraph, plan: Plan, sourceFiles: readonly string[]): void; /** * Acquire a build lock. Throws if another process holds the lock. */ export declare function acquireLock(root: string): void; /** * Release the build lock. */ export declare function releaseLock(root: string): void; //# sourceMappingURL=build-state.d.ts.map