export interface MigrationStats {
    testCases: {
        total: number;
        migrated: number;
        skipped: number;
        errors: string[];
    };
    experiments: {
        total: number;
        migrated: number;
        skipped: number;
        errors: string[];
    };
    reports: {
        total: number;
        migrated: number;
        skipped: number;
        errors: string[];
    };
}
export interface MigrationOptions {
    /** Skip items that already exist in OpenSearch */
    skipExisting?: boolean;
    /** Dry run - don't actually write to OpenSearch */
    dryRun?: boolean;
    /** Callback for progress updates */
    onProgress?: (message: string, stats: MigrationStats) => void;
}
/**
 * Get counts of data in localStorage without reading full content
 */
export declare function getLocalStorageCounts(): {
    testCases: number;
    experiments: number;
    reports: number;
};
/**
 * Check if there's any data in localStorage to migrate
 */
export declare function hasLocalStorageData(): boolean;
/**
 * Migrate all data from localStorage to OpenSearch
 */
export declare function migrateToOpenSearch(options?: MigrationOptions): Promise<MigrationStats>;
/**
 * Clear localStorage data after successful migration
 * WARNING: This is destructive and should only be called after verifying migration success
 */
export declare function clearLocalStorageData(): void;
/**
 * Export localStorage data as JSON for backup
 */
export declare function exportLocalStorageData(): string;
//# sourceMappingURL=migration.d.ts.map