import type { SessionStore } from '../session-store.interface.js'; import type { SessionStoreMonitor } from '../session-monitoring.js'; import type { SessionReplicationManager } from '../session-replication.js'; import type { SessionMigration } from '../session-migration.js'; import type { pino } from 'pino'; export interface SessionStoreFactoryConfig { preferredStore?: 'memory' | 'redis' | 'auto'; enableMonitoring?: boolean; enableReplication?: boolean; enableMigration?: boolean; logger?: pino.Logger; monitoringConfig?: { healthCheckInterval?: number; metricsRetentionPeriod?: number; alertThresholds?: { maxLatency?: number; maxErrorRate?: number; }; }; replicationConfig?: { mode?: 'master-slave' | 'master-master' | 'active-passive'; syncInterval?: number; conflictResolution?: 'last-write-wins' | 'oldest-wins' | 'manual'; }; } export interface SessionStoreFactoryResult { store: SessionStore; type: 'memory' | 'redis'; monitor?: SessionStoreMonitor; replication?: SessionReplicationManager; migration?: SessionMigration; metadata: { createdAt: Date; config: SessionStoreFactoryConfig; redisAvailable: boolean; fallbackReason?: string; }; } export interface ExtractedConfiguration { preferredStore: 'memory' | 'redis' | 'auto'; enableMonitoring: boolean; enableReplication: boolean; enableMigration: boolean; logger: pino.Logger; monitoringConfig: NonNullable; replicationConfig: NonNullable; } export interface MigrationStats { totalSessions: number; migratedSessions: number; failedSessions: number; skippedSessions: number; duration: number; } export interface HealthStatus { overall: 'healthy' | 'degraded' | 'unhealthy'; instances: Array<{ instanceId: string; type: 'memory' | 'redis'; status: 'healthy' | 'degraded' | 'unhealthy'; monitor?: unknown; replication?: unknown; }>; } export interface BackupResult { instanceId: string; storeType: 'memory' | 'redis'; sessionCount: number; createdAt: Date; data: Array; } export interface RestoreStats { restored: number; skipped: number; failed: number; } //# sourceMappingURL=types.d.ts.map