/**
 * Environment Variable Schema & Validation
 *
 * Central registry of all environment variables used by Code Buddy.
 * Provides validation, documentation, and a CLI summary.
 */
export interface EnvVarDef {
    /** Environment variable name */
    name: string;
    /** Expected value type */
    type: 'string' | 'number' | 'boolean';
    /** Default value (as string, since env vars are always strings) */
    default?: string;
    /** Human-readable description */
    description: string;
    /** Whether the app cannot function without this variable */
    required?: boolean;
    /** Whether the value should be masked in output (API keys, secrets) */
    sensitive?: boolean;
    /** Category for grouping in CLI output */
    category: EnvCategory;
    /** Minimum value for numbers */
    min?: number;
    /** Maximum value for numbers */
    max?: number;
    /** Regex pattern for string validation */
    pattern?: RegExp;
}
export type EnvCategory = 'core' | 'provider' | 'server' | 'security' | 'debug' | 'voice' | 'search' | 'cache' | 'metrics' | 'display';
/**
 * Complete schema of all environment variables used across the codebase.
 */
export declare const ENV_SCHEMA: EnvVarDef[];
/**
 * Look up a single env var definition by name.
 */
export declare function getEnvDef(name: string): EnvVarDef | undefined;
export interface ValidationResult {
    valid: boolean;
    warnings: string[];
    errors: string[];
}
/**
 * Validate the current `process.env` against the schema.
 *
 * - Required vars that are missing produce **errors**.
 * - Type mismatches and out-of-range values produce **warnings**.
 */
export declare function validateEnv(env?: Record<string, string | undefined>): ValidationResult;
/**
 * Mask a sensitive value for display.
 * Shows first 4 chars and masks the rest, or just '****' if too short.
 */
export declare function maskValue(value: string): string;
/**
 * Generate a formatted summary of all environment variables for CLI output.
 */
export declare function getEnvSummary(env?: Record<string, string | undefined>): string;
