import type { ILogger } from "../logging/index.js";
/**
 * Interface for backup service
 */
export interface IBackupService {
    /** Initialize backup directory */
    init(destDir: string): Promise<void>;
    /** Backup a file before modification */
    backup(absolutePath: string): Promise<void>;
    /** Create persistent timestamped backup in project */
    persistentBackup(absolutePath: string): Promise<void>;
    /** Rollback all changes from backup */
    rollback(): Promise<void>;
    /** Cleanup backup directory (on success) */
    cleanup(): Promise<void>;
}
/**
 * Service for backing up and restoring files during operations
 */
export declare class BackupService implements IBackupService {
    private backupDir;
    private destDir;
    private persistentBackupDirname;
    private readonly logger;
    /**
     * Initialize backup service with logger
     * @param logger - Logger instance for backup operations
     */
    constructor(logger: ILogger);
    init(destDir: string): Promise<void>;
    backup(absolutePath: string): Promise<void>;
    persistentBackup(absolutePath: string): Promise<void>;
    rollback(): Promise<void>;
    cleanup(): Promise<void>;
    /**
     * Recursively list all files in a directory
     * @param dir - Directory to scan recursively
     * @returns Array of absolute file paths
     */
    private listFilesRecursive;
}
/**
 * No-op backup service for dry-run mode
 */
export declare class DryRunBackupService implements IBackupService {
    init(_destDir: string): Promise<void>;
    backup(_absolutePath: string): Promise<void>;
    persistentBackup(_absolutePath: string): Promise<void>;
    rollback(): Promise<void>;
    cleanup(): Promise<void>;
}
//# sourceMappingURL=backup.d.ts.map