import type { FileSystem } from "./file-system.js"; export type DryRunOperation = { type: "writeFile"; path: string; nextContent: string; previousContent: string | null; } | { type: "mkdir"; path: string; options?: { recursive?: boolean; }; existing?: boolean; } | { type: "unlink"; path: string; } | { type: "rm"; path: string; options?: { recursive?: boolean; force?: boolean; }; } | { type: "copyFile"; from: string; to: string; } | { type: "chmod"; path: string; mode: number; } | { type: "symlink"; target: string; path: string; } | { type: "rename"; from: string; to: string; }; export declare class DryRunRecorder { private operations; record(operation: DryRunOperation): void; takeStagedWrite(path: string): Extract | null; drain(): DryRunOperation[]; } export declare function createDryRunFileSystem(base: FileSystem, recorder: DryRunRecorder): FileSystem; export declare function formatDryRunOperations(operations: DryRunOperation[]): string[]; export declare function renderUnifiedDiff(targetPath: string, previousContent: string | null, nextContent: string): string[]; export declare function describesChange(operation: DryRunOperation): boolean;