/**
 * Backup system utilities for the update command
 * These utilities help create, manage and restore backups
 */
/**
 * Options for backup creation
 */
export interface BackupOptions {
    /** Custom name for the backup */
    name?: string;
    /** Directory to store backups */
    backupDir?: string;
    /** Files to include in backup (relative to source) */
    include?: string[];
    /** Files to exclude from backup (relative to source) */
    exclude?: string[];
}
/**
 * Information about a backup
 */
export interface BackupInfo {
    /** Unique ID of the backup */
    id: string;
    /** Name of the backup */
    name: string;
    /** Path to the backup file */
    path: string;
    /** Time the backup was created */
    createdAt: Date;
    /** Size of the backup in bytes */
    size: number;
}
/**
 * Create a backup of a directory
 * @param sourceDir - Directory to backup
 * @param options - Backup options
 * @returns Information about the created backup
 */
export declare function createBackup(sourceDir: string, options?: BackupOptions): Promise<BackupInfo>;
/**
 * Restore a backup to a directory
 * @param backupPath - Path to the backup file
 * @param destDir - Directory to restore to
 * @param overwrite - Whether to overwrite existing files
 * @returns Whether the restoration was successful
 */
export declare function restoreBackup(backupPath: string, destDir: string, overwrite?: boolean): Promise<boolean>;
/**
 * List all backups in a directory
 * @param backupDir - Directory containing backups
 * @returns Array of backup information
 */
export declare function listBackups(backupDir: string): Promise<BackupInfo[]>;
/**
 * Delete a backup
 * @param backupPath - Path to the backup file
 * @returns Whether the deletion was successful
 */
export declare function deleteBackup(backupPath: string): Promise<boolean>;
/**
 * Delete old backups exceeding a limit
 * @param backupDir - Directory containing backups
 * @param limit - Maximum number of backups to keep
 * @returns Number of backups deleted
 */
export declare function cleanupOldBackups(backupDir: string, limit: number): Promise<number>;
/**
 * Format backup size for display
 * @param size - Size in bytes
 * @returns Formatted size string
 */
export declare function formatBackupSize(size: number): string;
