import type { Effort } from "./model-thinking"; import type { AnthropicOptions } from "./providers/anthropic"; import type { Api, AssistantMessage, Context, Model, OptionsForApi, SimpleStreamOptions, ToolChoice } from "./types"; import { AssistantMessageEventStream } from "./utils/event-stream"; /** * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY. * * Provider authentication intentionally excludes cwd/.env values. Project dotenv files are * loaded into $env for app/tool execution, but must not silently fund GJC model requests. */ export declare function getEnvApiKey(provider: string): string | undefined; /** * Enumerate every provider that has an env-var fallback for `getEnvApiKey`. * Used by `gjc auth-broker migrate --include-env` to discover env-sourced keys * that should be uploaded to the broker. */ export declare function listProvidersWithEnvKey(): string[]; /** * Provider-specific credential guidance appended to "no credential" errors. * * Headless GJC has no interactive `/login` TUI, so a bare "No API key" / * "No credentials" error left users — OpenCode Go subscribers especially * (#755) — unsure what signal GJC actually reads. OpenCode subscriptions are * themselves API keys, so this names the env var GJC reads for the provider, * warns that a project `.env` is intentionally ignored for provider * credentials, and points OpenCode users at one-time interactive CLI credential capture. * * Returns an empty string when the provider has no env-var key and no special * handling, so callers can append it unconditionally. */ export declare function formatProviderCredentialHint(provider: string): string; /** * Build an actionable "missing API key" error for a provider, used by the * low-level `stream`/`complete` entry points (#755). */ export declare function formatMissingApiKeyError(provider: string): string; export declare function stream(model: Model, context: Context, options?: OptionsForApi): AssistantMessageEventStream; export declare function complete(model: Model, context: Context, options?: OptionsForApi): Promise; export declare function streamSimple(model: Model, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream; export declare function completeSimple(model: Model, context: Context, options?: SimpleStreamOptions): Promise; export declare const OUTPUT_FALLBACK_BUFFER = 4000; export declare const ANTHROPIC_THINKING: Record; export declare function mapAnthropicToolChoice(choice?: ToolChoice): AnthropicOptions["toolChoice"];