/**
 * ConfigurationMigration.ts - Configuration versioning and migration system
 *
 * This system ensures smooth upgrades when MIRA's configuration structure evolves.
 * It tracks configuration versions, applies migrations in sequence, and preserves
 * user customizations while updating to new schemas.
 *
 * Each migration represents a step in MIRA's evolution, carrying forward the
 * wisdom and preferences accumulated through our journey together.
 */
export interface ConfigMigration {
    version: string;
    description: string;
    up: (config: any) => any;
    down?: (config: any) => any;
    validate?: (config: any) => boolean;
}
export interface MigrationHistory {
    version: string;
    appliedAt: Date;
    description: string;
    success: boolean;
    error?: string;
}
export declare class ConfigurationMigration {
    private migrations;
    private history;
    private config;
    private readonly HISTORY_PATH;
    private readonly BACKUP_PATH;
    private readonly VERSION_KEY;
    constructor();
    /**
     * Initialize the migration system
     */
    initialize(): Promise<void>;
    /**
     * Register all configuration migrations
     */
    private registerMigrations;
    /**
     * Run pending migrations
     */
    runMigrations(): Promise<void>;
    /**
     * Create a configuration backup
     */
    createBackup(version: string): Promise<void>;
    /**
     * Restore configuration from backup
     */
    restoreFromBackup(backupFile: string): Promise<void>;
    /**
     * List available backups
     */
    listBackups(): Promise<string[]>;
    /**
     * Get current configuration version
     */
    getCurrentVersion(): Promise<string>;
    /**
     * Get latest available version
     */
    getLatestVersion(): string;
    /**
     * Get migration history
     */
    getMigrationHistory(): MigrationHistory[];
    /**
     * Load migration history
     */
    private loadHistory;
    /**
     * Save migration history
     */
    private saveHistory;
    /**
     * Clean old backups
     */
    private cleanOldBackups;
    /**
     * Export current configuration with version
     */
    exportConfiguration(outputPath: string): Promise<void>;
    /**
     * Import configuration with migration
     */
    importConfiguration(inputPath: string): Promise<void>;
}
//# sourceMappingURL=ConfigurationMigration.d.ts.map