/**
 * TODO: IMPERATIVE PROGRAMMING PATTERN - NEEDS REFACTORING
 *
 * This file demonstrates imperative programming practices that make testing difficult:
 * - Imperative for loops (lines 200-210, 250-260, 280-290)
 * - Mutable state handling with object mutations
 * - Complex nested conditionals
 * - Multiple responsibilities in single methods
 * - Side effects in loops and object mutations
 *
 * Mutation Score: 32.04% - Imperative patterns make testing fragile!
 *
 * RECOMMENDATION: Refactor to use:
 * - Functional array methods (map, filter, reduce)
 * - Immutable data transformations
 * - Pure functions with clear contracts
 * - Composition over mutation
 * - Recursive functional patterns for object traversal
 */
export interface ValidationResult {
    success: boolean;
    errors?: any[];
    warnings?: any[];
    summary?: any;
    results?: any[];
    error?: string;
}
export interface ValidationOptions {
    verbose?: boolean;
    strict?: boolean;
    env?: string;
    all?: boolean;
    environments?: string;
    failFast?: boolean;
    ignore_keys?: string[];
    required_keys?: string[];
}
export interface PraetorianConfig {
    files: string[];
    ignore_keys?: string[];
    required_keys?: string[];
}
export declare class ValidationOrchestrator {
    private environmentManager;
    constructor();
    /**
     * Orchestrate validation based on options
     */
    orchestrateValidation(configPath: string, options: ValidationOptions): Promise<ValidationResult>;
    /**
     * Validate using environment-based approach
     */
    private validateByEnvironments;
    /**
     * Validate all environments
     */
    private validateAllEnvironments;
    /**
     * Validate specific environment
     */
    private validateSpecificEnvironment;
    /**
     * Validate single file
     */
    private validateSingleFile;
    /**
     * Load Praetorian configuration
     */
    private loadPraetorianConfig;
    /**
     * Separate existing and missing files
     */
    private separateExistingAndMissingFiles;
    /**
     * Handle missing files by creating empty structures
     */
    private handleMissingFiles;
    /**
     * Load all configuration files
     */
    private loadAllConfigurationFiles;
    /**
     * Load file content
     */
    private loadFileContent;
    /**
     * Determine file format
     */
    private determineFileFormat;
    /**
     * Create validation function
     */
    private createValidationFunction;
    /**
     * Create empty structure file
     */
    private createEmptyStructureFile;
    /**
     * Create empty structure from existing files
     */
    private createEmptyStructureFromExisting;
    /**
     * Create structure from required keys
     */
    private createStructureFromRequiredKeys;
    /**
     * Create structure from existing files
     */
    private createStructureFromExistingFiles;
    /**
     * Merge structure
     */
    private mergeStructure;
    /**
     * Replace values with null
     */
    private replaceValuesWithNull;
}
/**
 * Run validation with the orchestrator
 */
export declare function runValidation(configPath: string, options?: ValidationOptions): Promise<ValidationResult>;
//# sourceMappingURL=ValidationOrchestrator.d.ts.map