export type ProviderId = 'ollama' | 'anthropic' | 'openai' | 'openrouter' | 'moonshot' | 'gemini' | 'deepseek' | 'mistral' | 'agent-proxy' | 'none'; export interface ProviderConfig { id: ProviderId; displayName: string; baseUrl: string; apiKey?: string; defaultModel?: string; source?: 'user' | 'env' | 'agent-discovered'; discoveredFrom?: string; enabled: boolean; } export interface ModelInfo { id: string; provider: ProviderId; displayName: string; contextWindow?: number; priceInputPerMTok?: number; priceOutputPerMTok?: number; tags: string[]; } export interface BrainIntelligenceConfig { leadProvider: ProviderId; leadModel: string; fallbackChain: Array<{ provider: ProviderId; model: string; }>; perFeatureModel: Record; useAgentToolModels: boolean; preferLocalFirst: boolean; } export declare class ModelRegistry { private providers; private intelligence; private initialized; private discoveredAgentConfigs; init(): Promise; /** List all providers and their current status. */ listProviders(): ProviderConfig[]; getProvider(id: ProviderId): ProviderConfig | undefined; saveProvider(id: ProviderId, patch: Partial): Promise; getIntelligence(): BrainIntelligenceConfig; setIntelligence(patch: Partial): Promise; /** Fetch available models from a provider (uses /v1/models or provider-specific endpoint). */ listModels(providerId: ProviderId): Promise; /** Test connectivity to a provider. */ test(providerId: ProviderId): Promise<{ ok: boolean; error?: string; modelCount?: number; }>; /** Generate text via the lead model (or fallbacks), returning unified response shape. */ generate(prompt: string, opts?: { system?: string; featureName?: string; maxTokens?: number; }): Promise<{ text: string; provider: ProviderId; model: string; durationMs: number; inputTokens?: number; outputTokens?: number; }>; getDiscoveredAgentConfigs(): AgentDiscovered[]; private dispatch; private callOllama; private callAnthropic; private callOpenAICompatible; private callGemini; /** Agent proxy: route through whichever agent tool has intelligence configured. */ private callAgentProxy; private fetchOllamaModels; private fetchAnthropicModels; private anthropicDefaults; private fetchOpenAIModels; private fetchOpenRouterModels; private fetchOpenAICompatibleModels; private fetchGeminiModels; private fetchAgentProxyModels; private discoverAgentConfigs; private persist; } export interface AgentDiscovered { agent: string; provider: ProviderId; model: string; apiKey?: string; sourcePath: string; } export declare function getModelRegistry(): ModelRegistry; export declare function resetModelRegistryForTests(): void; //# sourceMappingURL=model-registry.d.ts.map