/**
 * Cloud Backup Manager
 *
 * Manages backup creation, restoration, and lifecycle for cloud storage.
 */
import { EventEmitter } from 'events';
import type { BackupConfig, BackupManifest, BackupListEntry } from './types.js';
import type { CloudConfig } from './types.js';
export interface BackupManagerConfig {
    cloud: CloudConfig;
    backup: BackupConfig;
    /** Base path for backups in cloud storage */
    backupPath?: string;
    /** Application version for compatibility checking */
    appVersion?: string;
}
export declare class BackupManager extends EventEmitter {
    private storage;
    private config;
    private backupTimer;
    private isBackingUp;
    constructor(config: BackupManagerConfig);
    /**
     * Start automatic backups
     */
    startAutoBackup(): void;
    /**
     * Stop automatic backups
     */
    stopAutoBackup(): void;
    /**
     * Create a new backup
     */
    createBackup(_description?: string): Promise<BackupManifest>;
    /**
     * Collect data from a single item path
     */
    private collectItem;
    /**
     * Recursively collect files from directory
     */
    private collectDirectory;
    /**
     * Upload backup as single file
     */
    private uploadBackup;
    /**
     * Upload backup as split parts
     */
    private uploadSplitBackup;
    /**
     * List available backups
     */
    listBackups(): Promise<BackupListEntry[]>;
    /**
     * Get backup manifest
     */
    getBackupManifest(backupId: string): Promise<BackupManifest | null>;
    /**
     * Restore a backup
     */
    restoreBackup(backupId: string, targetPath: string, options?: {
        overwrite?: boolean;
        items?: string[];
    }): Promise<{
        success: boolean;
        itemsRestored: number;
        errors: string[];
    }>;
    /**
     * Delete a backup
     */
    deleteBackup(backupId: string): Promise<boolean>;
    /**
     * Cleanup old backups based on retention policy
     */
    cleanupOldBackups(): Promise<number>;
    /**
     * Verify backup integrity
     */
    verifyBackup(backupId: string): Promise<{
        valid: boolean;
        errors: string[];
    }>;
    /**
     * Export backup to local file
     */
    exportBackup(backupId: string, outputPath: string): Promise<void>;
    /**
     * Import backup from local file
     */
    importBackup(inputPath: string): Promise<BackupManifest>;
    /**
     * Compress data
     */
    private compress;
    /**
     * Decompress data
     */
    private decompress;
    /**
     * Calculate checksum
     */
    private calculateChecksum;
    /**
     * Generate backup ID
     */
    private generateBackupId;
    /**
     * Get file type from path
     */
    private getFileType;
    /**
     * Dispose of the backup manager
     */
    dispose(): void;
}
export declare function createBackupManager(config: BackupManagerConfig): BackupManager;
