import { Preferences } from './schemas.js';

/**
 * Migration function type
 */
export type MigrationFunction = (preferences: unknown) => Promise<unknown> | unknown;
/**
 * Migration registry for handling schema version changes
 */
export declare class MigrationRegistry {
    private readonly migrations;
    /**
     * Register a migration from one version to another
     */
    registerMigration(fromVersion: string, migration: MigrationFunction): void;
    /**
     * Apply migrations to bring preferences to current schema version
     */
    migrate(preferences: unknown): Promise<Preferences>;
    /**
     * Get the migration path from source to target version
     */
    private getMigrationPath;
    /**
     * Ensure preferences have valid structure with defaults for missing fields
     */
    private ensureValidStructure;
    /**
     * Get default preferences for current schema version
     */
    private getDefaultPreferences;
}
export declare const defaultMigrationRegistry: MigrationRegistry;
//# sourceMappingURL=migration.d.ts.map