/**
 * Configuration Validation System
 * Phase 6, Checkpoint F1 - Comprehensive validation for all configuration inputs
 */
export interface ValidationRule {
    name: string;
    description: string;
    validator: (value: any, context?: ValidationContext) => ValidationResult;
    severity: 'error' | 'warning' | 'info';
    category: 'security' | 'performance' | 'compatibility' | 'syntax' | 'logic';
}
export interface ValidationResult {
    valid: boolean;
    message: string;
    suggestion?: string;
    details?: Record<string, any>;
}
export interface ValidationContext {
    configPath: string[];
    fullConfig: Record<string, any>;
    environment: 'development' | 'production' | 'test';
    metadata?: Record<string, any>;
}
export interface ConfigValidationReport {
    valid: boolean;
    errors: Array<ValidationError>;
    warnings: Array<ValidationWarning>;
    info: Array<ValidationInfo>;
    summary: {
        totalRules: number;
        passed: number;
        failed: number;
        warnings: number;
        criticalIssues: string[];
        recommendations: string[];
    };
}
export interface ValidationError {
    path: string;
    rule: string;
    message: string;
    severity: 'error';
    category: string;
    suggestion?: string;
}
export interface ValidationWarning {
    path: string;
    rule: string;
    message: string;
    severity: 'warning';
    category: string;
    suggestion?: string;
}
export interface ValidationInfo {
    path: string;
    rule: string;
    message: string;
    severity: 'info';
    category: string;
}
export declare class ConfigValidator {
    private static validationRules;
    private static globalRules;
    /**
     * Initialize configuration validator with built-in rules
     */
    static initialize(): void;
    /**
     * Register a validation rule for a specific config path
     */
    static registerRule(configPath: string, rule: ValidationRule): void;
    /**
     * Register a global validation rule
     */
    static registerGlobalRule(rule: ValidationRule): void;
    /**
     * Validate a configuration object
     */
    static validateConfig(config: Record<string, any>, environment?: 'development' | 'production' | 'test'): ConfigValidationReport;
    /**
     * Validate specific configuration value
     */
    static validateValue(value: any, configPath: string, context?: Partial<ValidationContext>): ValidationResult;
    /**
     * Get validation rules for a path
     */
    static getRulesForPath(configPath: string): ValidationRule[];
    /**
     * Validate configuration schema structure
     */
    static validateSchema(config: Record<string, any>, expectedSchema: Record<string, any>): ValidationResult;
    /**
     * Register built-in validation rules
     */
    private static registerBuiltInRules;
    /**
     * Validate object recursively
     */
    private static validateObjectRecursively;
    /**
     * Validate with specific rules
     */
    private static validateWithRules;
    /**
     * Generate validation summary
     */
    private static generateValidationSummary;
    /**
     * Helper methods for schema validation
     */
    private static checkRequiredFields;
    private static checkExtraFields;
    private static checkFieldTypes;
    private static getNestedValue;
}
export default ConfigValidator;
//# sourceMappingURL=config-validator.d.ts.map