import { AuthConfig } from './auth';
export declare function validateOutputFormat(value: string): 'table' | 'json';
export type Environment = 'development' | 'production' | 'test';
export type ConfigSource = 'cli' | 'env' | 'file' | 'global' | 'default';
export interface AppConfig {
    environment: Environment;
    auth: AuthConfig;
    configPath?: string;
    debug: boolean;
    timeout: number;
    baseUrl: string;
    maxRetries: number;
}
export interface EnvironmentConfig {
    environment: Environment;
    baseUrl: string;
    timeout: number;
    maxRetries: number;
    debug: boolean;
}
export interface ConfigOptions {
    configPath?: string;
    environment?: Environment;
    skipEnvFile?: boolean;
    envFiles?: string[];
    cliOptions?: Record<string, unknown>;
}
export interface ConfigValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
    missingFields: string[];
}
export interface ConfigSources {
    environment: ConfigSource;
    debug: ConfigSource;
    timeout: ConfigSource;
    baseUrl: ConfigSource;
    maxRetries: ConfigSource;
    configPath?: ConfigSource;
}
export interface ConfigResult {
    config: AppConfig;
    sources: ConfigSources;
    validation: ConfigValidationResult;
    loadedEnvFiles: string[];
}
export interface RawConfig {
    POLYV_ENVIRONMENT?: string | undefined;
    POLYV_DEBUG?: string | undefined;
    POLYV_TIMEOUT?: string | undefined;
    POLYV_BASE_URL?: string | undefined;
    POLYV_MAX_RETRIES?: string | undefined;
    POLYV_CONFIG_PATH?: string | undefined;
    POLYV_APP_ID?: string | undefined;
    POLYV_APP_SECRET?: string | undefined;
    POLYV_USER_ID?: string | undefined;
}
export declare const DEFAULT_CONFIG: Omit<AppConfig, 'auth'>;
export declare const ENVIRONMENT_CONFIGS: Record<Environment, EnvironmentConfig>;
export declare const CONFIG_ENV_VARS: {
    readonly ENVIRONMENT: "POLYV_ENVIRONMENT";
    readonly DEBUG: "POLYV_DEBUG";
    readonly TIMEOUT: "POLYV_TIMEOUT";
    readonly BASE_URL: "POLYV_BASE_URL";
    readonly MAX_RETRIES: "POLYV_MAX_RETRIES";
    readonly CONFIG_PATH: "POLYV_CONFIG_PATH";
};
export declare const CONFIG_CLI_OPTIONS: {
    readonly ENVIRONMENT: "environment";
    readonly DEBUG: "debug";
    readonly TIMEOUT: "timeout";
    readonly BASE_URL: "baseUrl";
    readonly MAX_RETRIES: "maxRetries";
    readonly CONFIG_PATH: "config";
};
export declare const ENV_FILE_PATTERNS: {
    readonly base: ".env";
    readonly local: ".env.local";
    readonly environment: (env: Environment) => string;
    readonly environmentLocal: (env: Environment) => string;
};
//# sourceMappingURL=config.d.ts.map