import { type FileOperation } from "@berkayorhan/stackkit-schemas"; export type FileOverwritePolicy = "never" | "if-owned" | "always"; export type PlannedFile = { path: string; owner: string; content: string; hash: string; overwrite: FileOverwritePolicy; }; export type FilePlan = { files: PlannedFile[]; }; export type FileConflict = { path: string; reason: "exists-unowned" | "modified-owned"; }; export type ManifestFileRecord = { path: string; owner: string; hash: string; }; export type ApplyFilePlanOptions = { ownedFiles?: readonly ManifestFileRecord[]; conflictLabel?: string; }; type FilePlanOperation = { kind: string; path?: string; owner?: string; content?: string; overwrite?: string; }; export declare function buildFilePlan(operations: readonly FilePlanOperation[]): FilePlan; export declare function detectFileConflicts(projectDirectory: string, plan: FilePlan, ownedFiles: readonly ManifestFileRecord[]): Promise; export declare function applyFilePlan(projectDirectory: string, plan: FilePlan, options?: ApplyFilePlanOptions): Promise; export declare function applyFilePlanUnchecked(projectDirectory: string, plan: FilePlan): Promise; export declare function filePlanToOperations(plan: FilePlan): FileOperation[]; export declare function mergeManifestFiles(existingFiles: readonly ManifestFileRecord[], newFiles: readonly ManifestFileRecord[]): ManifestFileRecord[]; export {}; //# sourceMappingURL=file-plan.d.ts.map