/** * Environment variable substitution for config values. * * Supports `${VAR_NAME}` syntax in string values, substituted at config load time. * - Only uppercase env vars are matched: `[A-Z_][A-Z0-9_]*` * - Escape with `$${}` to output literal `${}` * - Missing env vars throw `MissingEnvVarError` with context * * @example * ```json5 * { * models: { * providers: { * "vercel-gateway": { * apiKey: "${VERCEL_GATEWAY_API_KEY}" * } * } * } * } * ``` */ export declare class MissingEnvVarError extends Error { readonly varName: string; readonly configPath: string; constructor(varName: string, configPath: string); } export type EnvSubstitutionWarning = { varName: string; configPath: string; }; type SubstituteOptions = { /** When set, missing vars call this instead of throwing and the original placeholder is preserved. */ onMissing?: (warning: EnvSubstitutionWarning) => void; }; export declare function containsEnvVarReference(value: string): boolean; /** * Resolves `${VAR_NAME}` environment variable references in config values. * * @param obj - The parsed config object (after JSON5 parse and $include resolution) * @param env - Environment variables to use for substitution (defaults to process.env) * @param opts - Options: `onMissing` callback to collect warnings instead of throwing. * @returns The config object with env vars substituted * @throws {MissingEnvVarError} If a referenced env var is not set or empty (unless `onMissing` is set) */ export declare function resolveConfigEnvVars(obj: unknown, env?: NodeJS.ProcessEnv, opts?: SubstituteOptions): unknown; export {};