import { ValidationError } from './schema';
import { GeneratorConfig } from './parser';
/**
 * Configuration validation result
 */
export interface ValidationResult {
    /** Whether the configuration is valid */
    valid: boolean;
    /** Array of validation errors (empty if valid) */
    errors: ValidationError[];
    /** The validated configuration (potentially with defaults applied) */
    config?: GeneratorConfig;
    /** Warnings that don't prevent usage but should be noted */
    warnings: string[];
}
/**
 * Configuration validator class
 */
export declare class ConfigurationValidator {
    private readonly ajv;
    private readonly validateConfig;
    constructor();
    /**
     * Validate a configuration object
     */
    validate(config: unknown, modelNames?: string[]): ValidationResult;
    /**
     * Validate configuration with Prisma model names
     */
    validateWithModels(config: unknown, modelNames: string[]): ValidationResult;
    /**
     * Convert AJV validation errors to our error format
     */
    private convertAjvErrors;
    /**
     * Convert a single AJV error to our error format
     */
    private convertSingleAjvError;
    /**
     * Get human-readable error message for pattern validation failures
     */
    private getPatternErrorMessage;
    /**
     * Validate cross-field constraints
     */
    private validateCrossFieldConstraints;
    /**
     * Validate model references against actual Prisma models
     */
    private validateModelReferences;
    /**
     * Validate variant consistency
     */
    private validateVariantConsistency;
    /**
     * Validate operation consistency
     */
    private validateOperationConsistency;
    /**
     * Apply default values to configuration
     */
    private applyDefaults;
}
/**
 * Convenience function to validate configuration
 */
export declare function validateConfiguration(config: unknown, modelNames?: string[]): ValidationResult;
/**
 * Convenience function to validate configuration with model names
 */
export declare function validateConfigurationWithModels(config: unknown, modelNames: string[]): ValidationResult;
/**
 * Create human-readable validation error message
 */
export declare function formatValidationErrors(errors: ValidationError[]): string;
/**
 * Create human-readable validation warnings message
 */
export declare function formatValidationWarnings(warnings: string[]): string;
