import type { EnsureDirectoryMutation, RemoveDirectoryMutation, RemoveFileMutation, ChmodMutation, BackupMutation, RestoreBackupMutation, ValueResolver } from "../types.js";
export interface EnsureDirectoryOptions {
    /** Directory path (must start with ~) */
    path: ValueResolver<string>;
    /** Optional human-readable label for logging */
    label?: string;
}
export interface RemoveOptions {
    /** Target file path (must start with ~) */
    target: ValueResolver<string>;
    /** Only remove if file is empty/whitespace */
    whenEmpty?: boolean;
    /** Only remove if content matches regex */
    whenContentMatches?: RegExp;
    /** Optional human-readable label for logging */
    label?: string;
}
export interface RemoveDirectoryOptions {
    /** Directory path (must start with ~) */
    path: ValueResolver<string>;
    /** Remove directory even when not empty */
    force?: boolean;
    /** Optional human-readable label for logging */
    label?: string;
}
export interface ChmodOptions {
    /** Target file path (must start with ~) */
    target: ValueResolver<string>;
    /** File permission mode (e.g., 0o755) */
    mode: number;
    /** Optional human-readable label for logging */
    label?: string;
}
export interface BackupOptions {
    /** Target file path to backup (must start with ~) */
    target: ValueResolver<string>;
    /** Keep the first baseline only, including an originally missing target. */
    once?: boolean;
    /** Optional human-readable label for logging */
    label?: string;
}
export interface RestoreBackupOptions {
    /** Target file path whose latest generated backup should be restored. */
    target: ValueResolver<string>;
    /** Optional human-readable label for logging */
    label?: string;
}
declare function ensureDirectory(options: EnsureDirectoryOptions): EnsureDirectoryMutation;
declare function remove(options: RemoveOptions): RemoveFileMutation;
declare function removeDirectory(options: RemoveDirectoryOptions): RemoveDirectoryMutation;
declare function chmod(options: ChmodOptions): ChmodMutation;
declare function backup(options: BackupOptions): BackupMutation;
declare function restoreBackup(options: RestoreBackupOptions): RestoreBackupMutation;
export declare const fileMutation: {
    ensureDirectory: typeof ensureDirectory;
    remove: typeof remove;
    removeDirectory: typeof removeDirectory;
    chmod: typeof chmod;
    backup: typeof backup;
    restoreBackup: typeof restoreBackup;
};
export {};
