import { ValidationError } from './schema'; /** * Base class for all configuration-related errors */ export declare abstract class ConfigurationError extends Error { readonly cause?: Error | undefined; abstract readonly errorCode: string; abstract readonly category: ConfigurationErrorCategory; readonly timestamp: Date; readonly context: Record; constructor(message: string, cause?: Error | undefined, context?: Record); /** * Convert error to structured format for logging/debugging */ toStructured(): StructuredError; /** * Get user-friendly error message with suggestions */ abstract getUserFriendlyMessage(): string; } /** * Configuration error categories */ export declare enum ConfigurationErrorCategory { FILE_SYSTEM = "FILE_SYSTEM", PARSING = "PARSING", VALIDATION = "VALIDATION", BUSINESS_LOGIC = "BUSINESS_LOGIC", INTEGRATION = "INTEGRATION" } /** * Structured error format for logging */ export interface StructuredError { name: string; errorCode: string; category: ConfigurationErrorCategory; message: string; timestamp: string; context: Record; cause?: { name: string; message: string; stack?: string; }; stack?: string; } /** * Configuration file not found error */ export declare class ConfigFileNotFoundError extends ConfigurationError { readonly errorCode = "CONFIG_FILE_NOT_FOUND"; readonly category = ConfigurationErrorCategory.FILE_SYSTEM; constructor(filePath: string, cause?: Error); getUserFriendlyMessage(): string; } /** * Configuration file permission error */ export declare class ConfigFilePermissionError extends ConfigurationError { readonly errorCode = "CONFIG_FILE_PERMISSION_DENIED"; readonly category = ConfigurationErrorCategory.FILE_SYSTEM; constructor(filePath: string, operation: string, cause?: Error); getUserFriendlyMessage(): string; } /** * Configuration parsing error (JSON syntax, etc.) */ export declare class ConfigParsingError extends ConfigurationError { readonly errorCode = "CONFIG_PARSING_FAILED"; readonly category = ConfigurationErrorCategory.PARSING; constructor(filePath: string, parseError: string, line?: number, column?: number, cause?: Error); getUserFriendlyMessage(): string; } /** * Configuration validation error (schema violations) */ export declare class ConfigValidationError extends ConfigurationError { readonly errorCode = "CONFIG_VALIDATION_FAILED"; readonly category = ConfigurationErrorCategory.VALIDATION; constructor(validationErrors: ValidationError[], filePath?: string); getUserFriendlyMessage(): string; } /** * Model reference error (model not found in Prisma schema) */ export declare class ModelReferenceError extends ConfigurationError { readonly errorCode = "MODEL_REFERENCE_INVALID"; readonly category = ConfigurationErrorCategory.BUSINESS_LOGIC; constructor(modelName: string, availableModels: string[], configPath?: string); getUserFriendlyMessage(): string; } /** * Integration error (Prisma schema issues, dependency problems) */ export declare class IntegrationError extends ConfigurationError { readonly errorCode = "INTEGRATION_FAILED"; readonly category = ConfigurationErrorCategory.INTEGRATION; constructor(component: string, issue: string, cause?: Error); getUserFriendlyMessage(): string; } /** * Configuration warning (non-critical issues) */ export declare class ConfigurationWarning { readonly message: string; readonly path?: string | undefined; readonly context: Record; readonly timestamp: Date; constructor(message: string, path?: string | undefined, context?: Record); toString(): string; getUserFriendlyMessage(): string; } /** * Error handler utility class */ export declare class ConfigurationErrorHandler { private readonly context; constructor(context?: Record); /** * Handle file system errors */ handleFileSystemError(error: unknown, filePath: string, operation: string): never; /** * Handle parsing errors */ handleParsingError(error: unknown, filePath: string): never; /** * Handle validation errors */ handleValidationError(validationErrors: ValidationError[], filePath?: string): never; /** * Handle model reference errors */ handleModelReferenceError(modelName: string, availableModels: string[], configPath?: string): never; /** * Create warning */ createWarning(message: string, path?: string, context?: Record): ConfigurationWarning; /** * Format multiple errors for display */ formatErrors(errors: ConfigurationError[]): string; /** * Format multiple warnings for display */ formatWarnings(warnings: ConfigurationWarning[]): string; } /** * Create error handler with context */ export declare function createErrorHandler(context?: Record): ConfigurationErrorHandler; /** * Check if error is a configuration error */ export declare function isConfigurationError(error: unknown): error is ConfigurationError; /** * Extract error code from configuration error */ export declare function getErrorCode(error: unknown): string | undefined; /** * Extract error category from configuration error */ export declare function getErrorCategory(error: unknown): ConfigurationErrorCategory | undefined;