type AnthropicModel = "claude-sonnet-4-5" | "claude-haiku-4-5" | "claude-opus-4-1";
export declare function isSupportedAnthropicModel(model: unknown): model is AnthropicModel;
type OpenAIModel = "gpt-5" | "gpt-5-mini" | "gpt-5-nano" | "gpt-5-codex";
export declare function isSupportedOpenAIModel(model: unknown): model is OpenAIModel;
type VercelModel = "v0-1.5-md" | "v0-1.5-lg";
export declare function isSupportedVercelModel(model: unknown): model is VercelModel;
type GroqModel = "llama-3.1-8b-instant" | "llama-3.3-70b-versatile" | "meta-llama/llama-guard-4-12b" | "openai/gpt-oss-120b" | "openai/gpt-oss-20b" | "groq/compound" | "groq/compound-mini" | "meta-llama/llama-4-maverick-17b-128e-instruct" | "meta-llama/llama-4-scout-17b-16e-instruct" | "moonshotai/kimi-k2-instruct-0905" | "qwen/qwen3-32b";
export declare function isSupportedGroqModel(model: unknown): model is GroqModel;
export type SupportedProvider = "anthropic" | "openai" | "vercel" | "groq";
export type AllSupportedModels = AnthropicModel | OpenAIModel | VercelModel | GroqModel;
export declare const modelByProvider: {
    readonly anthropic: AnthropicModel[];
    readonly openai: OpenAIModel[];
    readonly vercel: VercelModel[];
    readonly groq: GroqModel[];
};
type ModelByProvider = {
    [K in keyof typeof modelByProvider]: (typeof modelByProvider)[K][number];
};
export declare const DEFAULT_MODEL: {
    [K in SupportedProvider]: ModelByProvider[K];
};
export declare function getProviderForModel(model: AllSupportedModels): SupportedProvider;
/**
 * Get the default provider based on available API keys.
 * Priority order: Anthropic → OpenAI → Groq → Vercel
 */
export declare function getDefaultProvider(): SupportedProvider;
export {};
//# sourceMappingURL=provider-and-models.d.ts.map