import { ErrorCategory, ErrorSeverity, RecoveryAction } from './error-context.js'; export interface SerializedError { name: string; message: string; errorCode: string; category: ErrorCategory; severity: ErrorSeverity; userMessage: string; statusCode: number; isOperational: boolean; recoverySuggestions: RecoveryAction[]; context: { requestId?: string; userId?: string; sessionId?: string; timestamp: string; stack?: string; correlationIds?: string[]; operation?: string; resource?: string; environment?: { nodeVersion?: string; platform?: string; service?: string; version?: string; }; }; technicalDetails?: Record; retryConfig?: { maxAttempts: number; initialDelay: number; backoffMultiplier: number; maxDelay: number; jitter: number; retryableErrorCodes?: string[]; }; helpLinks?: { documentation?: string; troubleshooting?: string; support?: string; faq?: string; }; tags?: Record; } export interface RestErrorResponse { error: { code: string; message: string; userMessage: string; category: ErrorCategory; severity: ErrorSeverity; details?: Record; recoverySuggestions?: RecoveryAction[]; retryConfig?: SerializedError['retryConfig']; helpLinks?: SerializedError['helpLinks']; timestamp: string; requestId?: string; correlationIds?: string[]; tags?: Record; }; meta?: { version: string; endpoint: string; method: string; requestDuration?: number; }; } export interface GrpcErrorResponse { code: number; message: string; details: string; metadata: { errorCode: string; category: ErrorCategory; severity: ErrorSeverity; userMessage: string; recoverySuggestions: RecoveryAction[]; retryConfig?: string; helpLinks?: string; timestamp: string; requestId?: string; correlationIds?: string; tags?: string; }; } export interface WebSocketErrorResponse { type: 'error'; id?: string; error: { code: string; message: string; userMessage: string; category: ErrorCategory; severity: ErrorSeverity; details?: Record; recoverySuggestions?: RecoveryAction[]; retryConfig?: SerializedError['retryConfig']; helpLinks?: SerializedError['helpLinks']; timestamp: string; requestId?: string; correlationIds?: string[]; tags?: Record; }; meta?: { connectionId: string; protocol: 'websocket'; }; } export interface McpErrorResponse { jsonrpc: '2.0'; error: { code: number; message: string; data?: { errorCode: string; category: ErrorCategory; severity: ErrorSeverity; userMessage: string; details?: Record; recoverySuggestions?: RecoveryAction[]; retryConfig?: SerializedError['retryConfig']; helpLinks?: SerializedError['helpLinks']; timestamp: string; requestId?: string; correlationIds?: string[]; tags?: Record; }; }; id?: string | number; } export interface SerializationOptions { includeStack?: boolean; includeTechnicalDetails?: boolean; includeRetryConfig?: boolean; includeHelpLinks?: boolean; includeTags?: boolean; sanitizeSensitiveData?: boolean; requestId?: string; endpoint?: string; method?: string; requestDuration?: number; connectionId?: string; userId?: string; } //# sourceMappingURL=serialization-interfaces.d.ts.map