/**
 * `ResolvedLLMDescriptor` — the SSoT resolution envelope (E9 · T11745 step 0).
 *
 * The Phase-2 `ResolvedLLM` (see `operations/llm.ts`) carries only
 * `{ provider, model, client, credential }`. That is enough for the
 * Anthropic-only legacy path but loses the *wire-protocol* facts a single
 * {@link import('./normalized-response.js').LlmTransport} factory needs to
 * construct ANY provider's transport without re-deriving them inline:
 *
 *  - `apiMode`      — which wire protocol the provider speaks (the load-bearing
 *                     field: codex routes purely on `apiMode === 'codex_responses'`).
 *  - `baseUrl`      — per-provider endpoint (codex ChatGPT backend, Ollama
 *                     localhost, Moonshot/OpenRouter).
 *  - `authType`     — drives the header builder (OAuth bearer vs `x-api-key`).
 *  - `capabilities` — tools/json/vision/thinking, so a runner can pick the
 *                     right call shape.
 *
 * This interface is the descriptor those fields hang off. It is intentionally
 * **types-only** (no runtime) so it satisfies the contracts-purity gate
 * (Gate 10). The runtime-precise variant (with concrete SDK client unions)
 * lives in `@cleocode/core/llm/role-resolver` (`ResolvedLLM`) and extends the
 * descriptor surface there.
 *
 * @module llm/resolved-descriptor
 * @task T11745
 * @task T11761
 * @epic T11745
 */
export {};
//# sourceMappingURL=resolved-descriptor.js.map