import type { IFormatHandler, ValidationResult } from "../format.interface.js"; import type { TranslationFile } from "../translate.interface.js"; import { EnhancedValidationResult } from "./enhanced-validation-result.js"; export interface FormatValidationRule { code: string; name: string; description: string; severity: "error" | "warning" | "info"; validate: (data: TranslationFile, context?: ValidationContext) => ValidationIssue[]; } export interface ValidationContext { format: string; filePath?: string; originalContent?: string; handler?: IFormatHandler; metadata?: any; } export interface ValidationIssue { code: string; message: string; severity: "error" | "warning" | "info"; line?: number; column?: number; path?: string; suggestion?: string; } export declare class FormatValidator { private static rules; private static globalRules; /** * Register format-specific validation rules */ static registerFormatRules(format: string, rules: FormatValidationRule[]): void; /** * Register global validation rules that apply to all formats */ static registerGlobalRules(rules: FormatValidationRule[]): void; /** * Validate translation file data using format-specific and global rules */ static validate(data: TranslationFile, context: ValidationContext): ValidationResult; /** * Validate translation file data and return enhanced result with detailed messaging */ static validateWithEnhancedResult(data: TranslationFile, context: ValidationContext): EnhancedValidationResult; /** * Create enhanced validation result from issues */ private static createEnhancedValidationResult; /** * Get all registered rules for a format */ static getFormatRules(format: string): FormatValidationRule[]; /** * Get all global rules */ static getGlobalRules(): FormatValidationRule[]; /** * Clear all rules (useful for testing) */ static clearRules(): void; /** * Validate structure integrity for translation files */ static validateStructureIntegrity(data: TranslationFile, context: ValidationContext): ValidationResult; private static validateTranslatableContent; private static validateStringContent; private static containsHtmlTags; private static createValidationResult; }