export interface DatabaseRetryConfig { retries: number; baseDelay: number; backoffMultiplier: number; maxDelay: number; totalTimeout: number; enableJitter: boolean; jitterRange: number; } export interface DatabaseOperationContext { operationName: string; tableName?: string; operationType: 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'BULK_CREATE' | 'TRANSACTION' | 'OTHER'; metadata?: Record; } export interface RetryStrategyOptions extends DatabaseRetryConfig { errorClassifier?: (error: Error) => boolean; delayCalculator?: (attempt: number, config: DatabaseRetryConfig) => number; onRetry?: (error: Error, attempt: number, context: DatabaseOperationContext) => void; onFailure?: (errors: Error[], context: DatabaseOperationContext) => void; onSuccess?: (result: any, attemptsMade: number, context: DatabaseOperationContext) => void; }