/** * Sistema de validaciones preventivas para detectar y corregir errores antes de que ocurran * Analiza patrones de error y aplica correcciones automáticas * @finity.org/ccl - Currency Conversion Library */ import { DetailedError } from '../errors'; export interface ValidationRule { name: string; priority: 'critical' | 'high' | 'medium' | 'low'; check: (value: any, context?: any) => boolean; fix?: (value: any, context?: any) => any; message: string; suggestions: string[]; } export interface ValidationContext { operation: string; module: string; timestamp: Date; metadata?: Record; } export interface ValidationResult { isValid: boolean; correctedValue?: any; warnings: string[]; errors: DetailedError[]; appliedFixes: string[]; } export declare class PreventiveValidator { private static instance; private rules; private validationHistory; private autoFixEnabled; private initialized; private constructor(); static getInstance(): PreventiveValidator; private ensureInitialized; /** * Inicializa las reglas de validación por defecto */ private initializeDefaultRules; /** * Agrega una regla directamente sin verificar inicialización (para uso interno) */ private addRuleDirectly; /** * Agrega una nueva regla de validación */ addRule(category: string, rule: ValidationRule): void; /** * Valida un valor usando las reglas de una categoría específica */ validate(category: string, value: any, context?: ValidationContext): Promise; /** * Valida múltiples valores de diferentes categorías */ validateMultiple(validations: Array<{ category: string; value: any; context?: ValidationContext; }>): Promise>; /** * Valida y corrige automáticamente un valor */ validateAndFix(category: string, value: T, context?: ValidationContext): Promise<{ value: T; wasFixed: boolean; warnings: string[]; }>; /** * Habilita o deshabilita la corrección automática */ setAutoFixEnabled(enabled: boolean): void; /** * Obtiene estadísticas de validación */ getValidationStats(): { totalValidations: number; categoriesValidated: string[]; fixesApplied: number; errorsFound: number; }; /** * Limpia el historial de validaciones */ clearHistory(): void; /** * Obtiene el peso numérico de una prioridad */ private getPriorityWeight; /** * Guarda el resultado de validación en el historial */ private saveValidationHistory; } export declare const preventiveValidator: PreventiveValidator; export declare const validateAmount: (amount: number, context?: ValidationContext) => Promise; export declare const validatePercentage: (percentage: number, context?: ValidationContext) => Promise; export declare const validateAndFixAmount: (amount: number, context?: ValidationContext) => Promise<{ value: number; wasFixed: boolean; warnings: string[]; }>; export declare const validateAndFixPercentage: (percentage: number, context?: ValidationContext) => Promise<{ value: number; wasFixed: boolean; warnings: string[]; }>; //# sourceMappingURL=preventive-validator.d.ts.map