/** * Centralized error handling utilities */ import type { ProviderError } from '../types/index.js'; /** * Error codes used throughout the application */ export declare enum ErrorCodes { CONFIGURATION_ERROR = "CONFIGURATION_ERROR", PROVIDER_NOT_CONFIGURED = "PROVIDER_NOT_CONFIGURED", AUTHENTICATION_FAILED = "AUTHENTICATION_FAILED", PERMISSION_DENIED = "PERMISSION_DENIED", RATE_LIMIT_EXCEEDED = "RATE_LIMIT_EXCEEDED", QUOTA_EXCEEDED = "QUOTA_EXCEEDED", INVALID_REQUEST = "INVALID_REQUEST", CONTENT_POLICY_VIOLATION = "CONTENT_POLICY_VIOLATION", GENERATION_FAILED = "GENERATION_FAILED", DESCRIPTION_FAILED = "DESCRIPTION_FAILED", TAGGING_FAILED = "TAGGING_FAILED", DOWNLOAD_FAILED = "DOWNLOAD_FAILED", TIMEOUT = "TIMEOUT", SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", NETWORK_ERROR = "NETWORK_ERROR", INVALID_RESPONSE = "INVALID_RESPONSE", FEATURE_NOT_AVAILABLE = "FEATURE_NOT_AVAILABLE", IMAGE_DESCRIPTION_NOT_SUPPORTED = "IMAGE_DESCRIPTION_NOT_SUPPORTED", IMAGE_TAGGING_NOT_SUPPORTED = "IMAGE_TAGGING_NOT_SUPPORTED", OPERATION_FAILED = "OPERATION_FAILED", VALIDATION_FAILED = "VALIDATION_FAILED" } /** * Error severity levels */ export declare enum ErrorSeverity { LOW = "low", MEDIUM = "medium", HIGH = "high", CRITICAL = "critical" } /** * Enhanced error class with additional metadata */ export declare class ImageGenerationError extends Error implements ProviderError { readonly provider: string; readonly code: string; readonly severity: ErrorSeverity; readonly retryable: boolean; readonly userFriendly: string; readonly details?: any; readonly timestamp: Date; readonly requestId?: string | undefined; constructor(code: string, message: string, provider?: string, options?: { severity?: ErrorSeverity | undefined; retryable?: boolean | undefined; userFriendly?: string | undefined; details?: any; requestId?: string | undefined; }); /** * Determine if error is retryable based on error code */ private isRetryableByCode; /** * Generate user-friendly error message */ private generateUserFriendlyMessage; /** * Convert error to JSON for logging/API responses */ toJSON(): object; /** * Create formatted error response for MCP tools */ toToolResponse(): { success: false; error: string; code?: string; retryable?: boolean; }; } /** * Error handler utility class */ export declare class ErrorHandler { /** * Handle and normalize any error into ImageGenerationError */ static handle(error: any, provider?: string, requestId?: string): ImageGenerationError; /** * Handle OpenAI/ChatGPT specific errors */ private static handleOpenAIError; /** * Handle HuggingFace specific errors */ private static handleHuggingFaceError; /** * Log error with appropriate level */ static log(error: ImageGenerationError): void; /** * Create error from validation failure */ static validationError(message: string, details?: any, requestId?: string): ImageGenerationError; /** * Create timeout error */ static timeoutError(operation: string, timeout: number, provider?: string, requestId?: string): ImageGenerationError; } export default ErrorHandler; //# sourceMappingURL=errorHandler.d.ts.map