import type { RedisClient } from '../types.js'; export interface MigrationResult { success: boolean; errors: string[]; } export interface BackupResult extends MigrationResult { sessionCount: number; backupSize: number; error?: string; } export interface RestoreResult extends MigrationResult { restoredCount: number; skippedCount: number; } export interface SessionMigrationResult extends MigrationResult { migratedCount: number; failedCount: number; } export interface BackupValidationResult { valid: boolean; version?: string; sessionCount?: number; timestamp?: string; errors: string[]; } export interface BackupData { timestamp: string; version: string; sessionCount: number; preserveTTL: boolean; sessions: BackupSession[]; } export interface BackupSession { key: string; data: string; ttl?: number; } export interface MigrationStrategy { name: string; validate(data: unknown): boolean; execute(source: RedisClient, target: RedisClient, options: MigrationOptions): Promise; } export interface MigrationOptions { batchSize: number; preserveTTL: boolean; overwrite?: boolean; dryRun?: boolean; validateOnly?: boolean; } export interface BackupOptions { preserveTTL?: boolean; compress?: boolean; } export interface RestoreOptions { overwrite?: boolean; dryRun?: boolean; validateOnly?: boolean; } export interface MigrationContext { operation: 'backup' | 'restore' | 'migrate'; startTime: Date; options: MigrationOptions | BackupOptions | RestoreOptions; } //# sourceMappingURL=types.d.ts.map