export interface CopyOptions {
    onProgress?: (copied: number, total: number, currentFile: string) => void;
    excludePatterns?: string[];
    maxRetries?: number;
}
export interface FileStats {
    totalFiles: number;
    totalSize: number;
}
/**
 * Cross-platform file operations utility
 * Centralizes common file operations with progress reporting and error handling
 */
export declare class FileOperations {
    /**
     * Recursively copy a directory with progress reporting
     * Works cross-platform without relying on shell commands
     */
    static copyDirectory(src: string, dest: string, options?: CopyOptions): Promise<void>;
    /**
     * Calculate directory statistics for progress reporting
     */
    private static calculateDirectoryStats;
    /**
     * Internal recursive copy implementation
     */
    private static copyDirectoryRecursive;
    /**
     * Copy a single file with retry logic
     */
    private static copyFileWithRetry;
    /**
     * Check if a file/directory should be excluded
     */
    private static shouldExclude;
    /**
     * Remove a directory with progress reporting
     */
    static removeDirectory(dir: string, options?: {
        onProgress?: (removed: number, total: number) => void;
    }): Promise<void>;
    /**
     * Internal recursive remove implementation
     */
    private static removeDirectoryRecursive;
    /**
     * Create a transaction manager for atomic file operations
     */
    static createTransaction(): FileTransaction;
}
/**
 * Transaction manager for atomic file operations
 * Ensures all operations succeed or all are rolled back
 */
export declare class FileTransaction {
    private operations;
    private completed;
    /**
     * Add a move operation to the transaction
     */
    addMove(source: string, destination: string): Promise<void>;
    /**
     * Add a copy operation to the transaction
     */
    addCopy(source: string, destination: string): Promise<void>;
    /**
     * Add a delete operation to the transaction
     */
    addDelete(path: string, backupPath?: string): Promise<void>;
    /**
     * Commit the transaction (mark as successful)
     */
    commit(): void;
    /**
     * Rollback all operations in reverse order
     */
    rollback(): Promise<void>;
    /**
     * Check if any operations have been performed
     */
    hasOperations(): boolean;
}
//# sourceMappingURL=fileOperations.d.ts.map