import type { GetAgentDetailsResponse, GetAgentResponse, GetConfigToolsResponse, UpsertAgentData, UpsertAgentResponse, DeleteAgentResponse } from '@ottocode/api'; import type { ThemeId } from '@ottocode/themes'; import type { AllModelsResponse } from '../../types/api'; type ProviderCompatibility = 'openai' | 'anthropic' | 'google' | 'openrouter' | 'ollama' | 'openai-compatible'; export type DiscoveredProviderModel = { id: string; label: string; toolCall?: boolean; reasoningText?: boolean; vision?: boolean; attachment?: boolean; contextWindow?: number; maxOutputTokens?: number; }; export type ProviderModelSettings = { id?: string; ownedBy?: 'openai' | 'anthropic' | 'google' | 'meta' | 'openrouter' | 'xai' | 'kimi' | 'qwen' | 'zai' | 'deepseek' | 'minimax'; label?: string; toolCall?: boolean; reasoningText?: boolean; attachment?: boolean; temperature?: boolean | number; limit?: { context?: number; output?: number; }; provider?: { id?: string; npm?: string; compatibility?: ProviderCompatibility; api?: string; baseURL?: string; family?: 'default' | 'openai' | 'anthropic' | 'google' | 'kimi' | 'glm' | 'minimax' | 'openai-compatible'; }; }; export type ProviderModelSettingsMap = Record; export type ProviderDetail = { id: string; label: string; source: 'built-in' | 'custom'; enabled: boolean; authorized: boolean; custom?: boolean; compatibility?: string | null; family?: string | null; baseURL?: string | null; apiKeyEnv?: string | null; hasApiKey?: boolean; allowAnyModel?: boolean; modelCount?: number; authType?: string | null; }; export type AgentDetail = GetAgentResponse['agent']; export type AgentToolGroups = { firstClass?: string[]; loadable?: string[]; }; export type AgentToolConfig = AgentToolGroups; export type DictationKeyword = { keyword: string; aliases?: string[]; }; export type UpdateAgentInput = UpsertAgentData['body']; export type ToolDetail = GetConfigToolsResponse['tools'][number]; export declare const configMixin: { getConfig(): Promise<{ agents: string[]; providers: string[]; defaults: { agent: string; provider: string; model: string; toolApproval?: "auto" | "dangerous" | "all" | "yolo"; guidedMode?: boolean; reasoningText?: boolean; reasoningLevel?: "minimal" | "low" | "medium" | "high" | "max" | "xhigh"; theme?: ThemeId; tuiTheme?: string; vimMode?: boolean; compactThread?: boolean; fontFamily?: string; smartEdges?: boolean; threadNavigatorRail?: boolean; releaseToSend?: boolean; fullWidthContent?: boolean; notificationsEnabled?: boolean; dictationKeywords?: DictationKeyword[]; dictationExcludedProjectKeywords?: string[]; dictationSmartFormatting?: boolean; autoCompactThresholdTokens?: number | null; coAuthorCommits?: boolean; }; }>; getAgentDetails(): Promise; getAgent(name: string): Promise; getConfigTools(): Promise; updateAgent(name: string, input: UpdateAgentInput): Promise; deleteAgent(name: string, scope?: "local" | "global"): Promise; getModels(providerId: string): Promise<{ models: Array<{ id: string; label: string; toolCall?: boolean; reasoningText?: boolean; vision?: boolean; attachment?: boolean; free?: boolean; contextWindow?: number; maxOutputTokens?: number; available?: boolean; unavailableReason?: string; }>; default: string; allowAnyModel?: boolean; dynamicModels?: boolean; label?: string; }>; getAllModels(): Promise; getProviderDetails(): Promise; discoverProviderModels(data: { compatibility: ProviderCompatibility; baseURL: string; apiKey?: string; }): Promise<{ baseURL?: string; models: DiscoveredProviderModel[]; unsupported?: boolean; message?: string; }>; updateProviderSettings(provider: string, data: { enabled?: boolean; custom?: boolean; label?: string; compatibility?: ProviderCompatibility; baseURL?: string | null; apiKey?: string | null; models?: ProviderModelSettingsMap; allowAnyModel?: boolean; }): Promise<{ success: boolean; provider: string; }>; deleteProviderSettings(provider: string): Promise<{ success: boolean; provider: string; }>; updateDefaults(data: { agent?: string; provider?: string; model?: string; toolApproval?: "auto" | "dangerous" | "all" | "yolo"; guidedMode?: boolean; reasoningText?: boolean; reasoningLevel?: "minimal" | "low" | "medium" | "high" | "max" | "xhigh"; theme?: ThemeId; tuiTheme?: string; vimMode?: boolean; compactThread?: boolean; fontFamily?: string; smartEdges?: boolean; threadNavigatorRail?: boolean; releaseToSend?: boolean; fullWidthContent?: boolean; notificationsEnabled?: boolean; dictationKeywords?: DictationKeyword[]; dictationExcludedProjectKeywords?: string[]; dictationSmartFormatting?: boolean; autoCompactThresholdTokens?: number | null; coAuthorCommits?: boolean; scope?: "global" | "local"; }): Promise<{ success: boolean; defaults: { agent: string; provider: string; model: string; toolApproval?: "auto" | "dangerous" | "all" | "yolo"; guidedMode?: boolean; reasoningText?: boolean; reasoningLevel?: "minimal" | "low" | "medium" | "high" | "max" | "xhigh"; theme?: ThemeId; tuiTheme?: string; vimMode?: boolean; compactThread?: boolean; fontFamily?: string; smartEdges?: boolean; threadNavigatorRail?: boolean; releaseToSend?: boolean; fullWidthContent?: boolean; notificationsEnabled?: boolean; dictationKeywords?: DictationKeyword[]; dictationExcludedProjectKeywords?: string[]; dictationSmartFormatting?: boolean; autoCompactThresholdTokens?: number | null; coAuthorCommits?: boolean; }; }>; }; export {}; //# sourceMappingURL=config.d.ts.map