// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

/**
 * Wire-protocol shape of one user-added provider. Three flavours:
 *
 * - [`Self::Custom`] — any OpenAI-compatible endpoint the user
 *   typed in by hand (local llama.cpp / vLLM / Ollama, LiteLLM,
 *   Together, Groq, …). The runner hits `<base_url>/chat/completions`
 *   verbatim and passes the API key as `Authorization: Bearer …`
 *   when one is configured.
 * - [`Self::OpenRouter`] — same wire shape as `Custom` (OpenAI-
 *   compatible), but the picker recognises it as a built-in so the
 *   `Add provider` modal can pre-fill the URL and link straight to
 *   the API-key dashboard. The runner doesn't behave differently —
 *   the only diff today is that prompt-cache markers fire for
 *   `anthropic/*` slugs without sniffing the base URL.
 * - [`Self::Anthropic`] — **not** OpenAI-compatible. The runner
 *   takes a separate code path that talks `/v1/messages` directly
 *   (auth via `x-api-key`, system prompt as a top-level field, tool
 *   shape via `tool_use` / `tool_result` blocks, native `cache_control`
 *   on prompt-cache markers, separate streaming SSE event grammar).
 *   Picker pre-fills the URL and locks the field.
 */
export type ProviderKind = "custom" | "open_router" | "anthropic";
