/**
 * Shared OpenAI API credentials.
 *
 * Two tiers, highest priority first:
 *   1. Shared in-memory heartbeat cache (`sharedKeys.openaiApiKey`),
 *      populated by `applySharedKeysFromHeartbeat()` in
 *      `agent/heartbeat-manager.ts`.
 *   2. Local `config.openaiApiKey` — manual fallback. The heartbeat path
 *      seeds this on first delivery when the slot is empty, but never
 *      overwrites an existing value.
 *
 * Mirrors `anthropic-credentials.ts` minus the bundle (tier-1) layer,
 * which OpenAI does not currently use — per-agent OpenAI keys are not
 * shipped via `credentialBundle.body.llm` today. If/when they are
 * (see design/llm_credentials_in_bundle_df9fdc89.plan.md), add a
 * `bundleOpenAIApiKey` here and check it first in `resolveOpenAIApiKey`.
 */
import type { VisionClawConfig } from "./config/types.js";
export declare function setSharedOpenAIApiKey(apiKey: string | undefined): boolean;
/**
 * Resolve the OpenAI API key to use.
 *
 * Precedence: shared cache > local config. Mirrors the
 * `resolveAnthropicApiKey` precedence so a fresh key broadcast by the
 * onboarding service supersedes a stale manual value on disk for the
 * current process. The on-disk value is only written by the heartbeat
 * path when initially absent.
 */
export declare function resolveOpenAIApiKey(config: VisionClawConfig): string | undefined;
//# sourceMappingURL=openai-credentials.d.ts.map