import type { ValidationError, ValidationResult, ValidationWarning } from "../format.interface.js"; import { type ErrorMessageContext } from "./error-messages.js"; /** * Enhanced validation error with detailed messaging and context */ export interface EnhancedValidationError extends ValidationError { severity: "error"; category?: string; suggestion?: string; documentation?: string; actionable?: boolean; context?: ErrorMessageContext; } /** * Enhanced validation warning with detailed messaging and context */ export interface EnhancedValidationWarning extends ValidationWarning { severity: "warning" | "info"; category?: string; suggestion?: string; documentation?: string; actionable?: boolean; context?: ErrorMessageContext; } /** * Enhanced validation result with detailed error information and formatting capabilities */ export declare class EnhancedValidationResult implements ValidationResult { readonly isValid: boolean; readonly errors: EnhancedValidationError[]; readonly warnings: EnhancedValidationWarning[]; constructor(errors?: Array, warnings?: Array); /** * Create from a basic ValidationResult */ static fromValidationResult(result: ValidationResult): EnhancedValidationResult; /** * Get total number of issues (errors + warnings) */ getTotalIssueCount(): number; /** * Get issues by severity level */ getIssuesBySeverity(severity: "error" | "warning" | "info"): Array; /** * Get issues by category */ getIssuesByCategory(category: string): Array; /** * Get only actionable issues (those that can be fixed by the user) */ getActionableIssues(): Array; /** * Format all issues for display */ formatForDisplay(includeDetails?: boolean): string; /** * Format issues for JSON output */ toJSON(): { isValid: boolean; summary: { errorCount: number; warningCount: number; totalIssues: number; }; errors: EnhancedValidationError[]; warnings: EnhancedValidationWarning[]; }; /** * Get a brief summary string */ getSummary(): string; /** * Check if there are any actionable issues */ hasActionableIssues(): boolean; /** * Get suggestions for fixing issues */ getSuggestions(): string[]; /** * Merge with another validation result */ merge(other: ValidationResult | EnhancedValidationResult): EnhancedValidationResult; /** * Filter issues by a predicate function */ filter(predicate: (issue: EnhancedValidationError | EnhancedValidationWarning) => boolean): EnhancedValidationResult; /** * Convert to basic ValidationResult for compatibility */ toBasicValidationResult(): ValidationResult; private enhanceError; private enhanceWarning; }