/**
 * Environment-variable expansion for config-loaded values.
 *
 * Harper's config parser does not expand `${VAR}` placeholders itself — the
 * `harperdb-config.yaml` value lands in memory verbatim. Component code that
 * needs to support env-var indirection (secrets, host overrides, etc.)
 * applies these helpers to its own config entries.
 *
 * The pattern matches the convention established by the OAuth component
 * (`@harperfast/oauth`'s `src/lib/config.ts`); kept identical so operator
 * documentation and config snippets carry over verbatim.
 *
 * Matching rules:
 * - Only **whole-string** `${VAR_NAME}` placeholders match. Partial expansion
 *   (e.g. `'http://${HOST}:9926'`) is NOT supported by design — keeps the
 *   substitution boundary unambiguous and avoids accidental injection into
 *   structured values.
 * - When the env var is undefined, the **original placeholder string is
 *   returned unchanged**. Callers detect missing values via downstream
 *   required-field checks (a `${VAR}` literal won't satisfy "non-empty string"
 *   contracts the same way a real key would).
 * - Non-string values pass through unchanged.
 */
/**
 * Expand a single value: returns `process.env[VAR_NAME]` if `value` is exactly
 * `${VAR_NAME}` and the env var is defined; returns `value` unchanged otherwise.
 *
 * @example
 * expandEnvVar('${OPENAI_API_KEY}') // process.env.OPENAI_API_KEY or '${OPENAI_API_KEY}' if unset
 * expandEnvVar('literal')           // 'literal'
 * expandEnvVar(123)                 // 123
 * expandEnvVar(undefined)           // undefined
 */
export declare function expandEnvVar<T>(value: T): T;
/**
 * Recursively expand `${VAR_NAME}` placeholders on every string leaf of a
 * value. Walks arrays and plain objects; bails on non-plain values.
 *
 * Used when a structured config block (e.g. `models.generative.<name>`) has
 * multiple string fields that may carry env-var placeholders, so callers
 * don't have to enumerate them.
 *
 * @example
 * expandEnvVarsDeep({ backend: 'openai', apiKey: '${OPENAI_API_KEY}' })
 * // → { backend: 'openai', apiKey: 'sk-...' }   (if env var set)
 */
export declare function expandEnvVarsDeep<T>(value: T): T;
/**
 * Returns `true` when `value` is a literal `${VAR_NAME}` placeholder string —
 * i.e., a value that `expandEnvVar` would have substituted if the env var
 * were defined but didn't, leaving the original unchanged.
 *
 * Useful for distinguishing "operator wrote a literal placeholder by mistake"
 * (loud, surface to logs) from "operator set the value directly" (proceed).
 *
 * @example
 * isUnresolvedEnvVarPlaceholder('${OPENAI_API_KEY}') // true
 * isUnresolvedEnvVarPlaceholder('sk-real-key')        // false
 * isUnresolvedEnvVarPlaceholder('${FOO}-suffix')      // false (partial; not matched by expandEnvVar)
 */
export declare function isUnresolvedEnvVarPlaceholder(value: unknown): boolean;
