export type Provider = 'anthropic' | 'cerebras' | 'custom' | 'deepinfra' | 'deepseek' | 'google' | 'google-vertex-anthropic' | 'groq' | 'mistral' | 'openai' | 'openrouter' | 'perplexity' | 'vercel' | 'xai' | (string & {}); export type AnthropicThinkingEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max'; export type AnthropicThinkingConfig = { mode: 'adaptive'; display?: 'omitted' | 'summarized'; effort?: AnthropicThinkingEffort; } | { mode?: 'enabled'; budgetTokens?: number; effort?: AnthropicThinkingEffort; }; export type OpenAIReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'; export interface OpenAIThinkingConfig { reasoningEffort?: OpenAIReasoningEffort; } export interface GoogleThinkingConfig { thinkingBudget?: number; thinkingLevel?: 'minimal' | 'low' | 'medium' | 'high'; } export interface XaiThinkingConfig { reasoningEffort?: 'low' | 'medium' | 'high'; } export type ThinkingConfigFor
= P extends 'anthropic' | 'google-vertex-anthropic' ? AnthropicThinkingConfig : P extends 'google' ? GoogleThinkingConfig : P extends 'xai' ? XaiThinkingConfig : P extends string ? OpenAIThinkingConfig : ThinkingConfig; export type ThinkingConfig = AnthropicThinkingConfig | OpenAIThinkingConfig | GoogleThinkingConfig | XaiThinkingConfig;