/** * Picks the LLM backend (invariant #5). An explicit `backend` wins; then `CAIRN_LLM_BACKEND` * (lets the CLI pick key-less backends like codex/claude-code); otherwise the first provider * whose API key is present, in order Anthropic → OpenAI → Gemini, falling back to local Claude Code. */ import type { LlmClient } from "../../core/ports.js"; export type LlmBackend = "anthropic" | "openai" | "gemini" | "claude-code" | "codex"; export interface LlmFactoryOptions { /** Force a backend regardless of environment. */ backend?: LlmBackend; model?: string; } export declare function createLlmClient(opts?: LlmFactoryOptions): LlmClient;