import type { Provider } from "./types.js";
export type ProviderName = "anthropic" | "openai" | "gemini";
/**
 * OpenAI-compatible third-party preset table.
 *
 * Many providers (DeepSeek, Volcengine Ark, Moonshot/Kimi, Aliyun DashScope,
 * xAI, Zhipu, etc.) expose an OpenAI-compatible `/chat/completions` endpoint.
 * Lisa can talk to all of them through `OpenAIProvider` by overriding
 * baseURL + apiKey. This table makes that automatic when the model name
 * starts with a known prefix — no need to set LISA_PROVIDER manually.
 *
 * Resolution rules (see providerForModel below):
 *   1. claude-* / Anthropic models → AnthropicProvider (with optional ANTHROPIC_BASE_URL)
 *   2. gpt-* / o1 / o3 / o4 / chatgpt-* → OpenAIProvider (vanilla)
 *   3. Model matches a preset prefix → OpenAIProvider with preset's baseURL/apiKey
 *   4. LISA_BASE_URL set (catch-all override, e.g. Ollama / self-hosted) → OpenAIProvider
 *   5. LISA_PROVIDER=openai → OpenAIProvider (vanilla)
 *   6. Default → AnthropicProvider
 */
interface OpenAICompatPreset {
    /** Human-readable provider name. */
    name: string;
    /** Model name prefixes that route to this preset. */
    modelPrefixes: string[];
    /** OpenAI-compatible base URL. */
    baseURL: string;
    /** Environment variable that holds this provider's API key. */
    apiKeyEnv: string;
}
export declare const OPENAI_COMPAT_PRESETS: OpenAICompatPreset[];
export declare function detectProvider(model: string): ProviderName;
export declare function makeProvider(name: ProviderName): Provider;
/**
 * Resolve a Provider instance for a given model name. Looks up preset →
 * LISA_BASE_URL override → vanilla provider, in that order.
 */
export declare function providerForModel(model: string): Provider;
/** For docs / CLI listing. */
export declare function listConfiguredProviders(): Array<{
    name: string;
    configured: boolean;
}>;
export {};
//# sourceMappingURL=registry.d.ts.map