import type { BackupConfig } from "./types.js"; export type BackupMetadata = { id: string; environment: string; createdAt: Date; size: number; checksum: string; regions: string[]; retentionDays: number; encrypted: boolean; }; export type BackupResult = { success: boolean; backupId: string; size: number; durationMs: number; regions: string[]; }; export type RestoreResult = { success: boolean; environment: string; restoredFrom: string; durationMs: number; }; export type BackupProvider = { name: string; createBackup(data: unknown, config: BackupConfig): Promise; restoreBackup(backupId: string): Promise; listBackups(environment?: string): Promise; deleteBackup(backupId: string): Promise; }; export declare class FileSystemBackupProvider implements BackupProvider { private readonly basePath; readonly name = "filesystem"; constructor(basePath: string); createBackup(data: unknown, config: BackupConfig): Promise; restoreBackup(backupId: string): Promise; listBackups(environment?: string): Promise; deleteBackup(backupId: string): Promise; } export declare class S3BackupProvider implements BackupProvider { private readonly config; readonly name = "s3"; constructor(config: { bucket: string; region: string; prefix?: string; }); createBackup(_data: unknown, _config: BackupConfig): Promise; restoreBackup(backupId: string): Promise; listBackups(_environment?: string): Promise; deleteBackup(backupId: string): Promise; } export declare class MultiRegionManager { private readonly regions; private readonly primaryRegion; constructor(primaryRegion: string, replicaRegions?: string[]); getRegions(): string[]; getPrimaryRegion(): string; getReplicaRegions(): string[]; replicateToRegions(data: T, replicator: (region: string, data: T) => Promise): Promise<{ success: boolean; failedRegions: string[]; }>; failover(): Promise; } export declare class BackupRecoveryManager { private readonly config; private readonly providers; private readonly multiRegionManager?; constructor(config?: { defaultProvider?: string; basePath?: string; multiRegion?: { primaryRegion: string; replicaRegions?: string[]; }; }); private initializeDefaultProviders; createBackup(environment: string, data: unknown, config: BackupConfig): Promise; restoreBackup(backupId: string): Promise; listBackups(environment?: string): Promise; cleanupExpiredBackups(): Promise; registerProvider(provider: BackupProvider): void; getMultiRegionManager(): MultiRegionManager | undefined; } //# sourceMappingURL=backup.d.ts.map