import { ConfigValidationResult, AppConfig, Environment, RawConfig } from '../types/config';
import { AuthOptions } from '../types/auth';
export declare const REQUIRED_FIELDS: {
    readonly AUTH: readonly ["appId", "appSecret"];
    readonly CORE: readonly [];
};
export declare const FIELD_CONSTRAINTS: {
    readonly timeout: {
        readonly min: 1000;
        readonly max: 300000;
    };
    readonly maxRetries: {
        readonly min: 0;
        readonly max: 10;
    };
    readonly baseUrl: {
        readonly protocol: readonly ["http:", "https:"];
    };
};
export declare function validateAuth(auth: AuthOptions): Pick<ConfigValidationResult, 'errors' | 'missingFields'>;
export declare function validateEnvironmentConfig(environment: Environment): string[];
export declare function validateTimeout(timeout: number): string[];
export declare function validateMaxRetries(maxRetries: number): string[];
export declare function validateBaseUrl(baseUrl: string): string[];
export declare function parseRawConfig(rawConfig: RawConfig, environment: Environment): {
    environment: Environment;
    debug: boolean;
    timeout: number;
    baseUrl: string;
    maxRetries: number;
    configPath?: string;
    auth: AuthOptions;
    errors: string[];
    warnings: string[];
};
export declare function validateAppConfig(config: AppConfig): ConfigValidationResult;
export declare function createConfigErrorMessage(validation: ConfigValidationResult): string;
export declare function applyDefaults(partial: Partial<Omit<AppConfig, 'auth'>> & {
    auth: AuthOptions;
}, environment: Environment): Omit<AppConfig, 'auth'> & {
    auth: AuthOptions;
};
//# sourceMappingURL=validator.d.ts.map