/**
 * Configuration validation utilities
 *
 * This module provides comprehensive validation for configuration objects,
 * ensuring that all settings are valid and secure.
 */
import type { UnifiedErrorConfig, FirebaseConfig, SentryConfig } from '../types';
/**
 * Validation result interface
 */
export interface ValidationResult {
    isValid: boolean;
    errors: ValidationError[];
    warnings: ValidationWarning[];
}
/**
 * Validation error interface
 */
export interface ValidationError {
    field: string;
    message: string;
    code: string;
    severity: 'error' | 'warning';
}
/**
 * Validation warning interface
 */
export interface ValidationWarning {
    field: string;
    message: string;
    code: string;
    suggestion?: string;
}
/**
 * Configuration validation rules
 */
export declare const VALIDATION_RULES: {
    readonly sampleRate: {
        readonly min: 0;
        readonly max: 1;
        readonly message: "Sample rate must be between 0 and 1";
    };
    readonly maxBreadcrumbs: {
        readonly min: 0;
        readonly max: 1000;
        readonly message: "Max breadcrumbs must be between 0 and 1000";
    };
    readonly maxOfflineQueueSize: {
        readonly min: 0;
        readonly max: 10000;
        readonly message: "Max offline queue size must be between 0 and 10000";
    };
    readonly offlineRetryDelay: {
        readonly min: 1000;
        readonly max: 300000;
        readonly message: "Offline retry delay must be between 1000ms and 300000ms";
    };
    readonly environment: {
        readonly validValues: readonly ["development", "staging", "production"];
        readonly message: "Environment must be one of: development, staging, production";
    };
};
/**
 * Validate base configuration
 */
export declare function validateBaseConfig(config: Partial<UnifiedErrorConfig>): ValidationResult;
/**
 * Validate Firebase-specific configuration
 */
export declare function validateFirebaseConfig(config: Partial<FirebaseConfig>): ValidationResult;
/**
 * Validate Sentry-specific configuration
 */
export declare function validateSentryConfig(config: Partial<SentryConfig>): ValidationResult;
/**
 * Validate complete configuration
 */
export declare function validateConfig(config: Partial<UnifiedErrorConfig>): ValidationResult;
/**
 * Sanitize configuration for logging (remove sensitive data)
 */
export declare function sanitizeConfig(config: any): any;
/**
 * Create a configuration validator
 */
export declare class ConfigValidator {
    private customRules;
    /**
     * Add a custom validation rule
     */
    addRule(field: string, validator: (value: any) => ValidationError | null): this;
    /**
     * Validate configuration with custom rules
     */
    validate(config: Partial<UnifiedErrorConfig>): ValidationResult;
    /**
     * Get nested value from object using dot notation
     */
    private getNestedValue;
}
/**
 * Create a new configuration validator
 */
export declare function createValidator(): ConfigValidator;
/**
 * Quick validation function for development
 */
export declare function isValidConfig(config: Partial<UnifiedErrorConfig>): boolean;
/**
 * Format validation errors for display
 */
export declare function formatValidationErrors(result: ValidationResult): string;
//# sourceMappingURL=validator.d.ts.map