import type { GetAgentDetailsResponse, GetAgentResponse, GetConfigToolsResponse, UpsertAgentData, UpsertAgentResponse, DeleteAgentResponse } from '@ottocode/api';
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 AgentDetail = GetAgentResponse['agent'];
export type AgentToolGroups = {
    firstClass?: string[];
    loadable?: string[];
};
export type AgentToolConfig = AgentToolGroups;
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?: "light" | "dark";
            tuiTheme?: string;
            vimMode?: boolean;
            compactThread?: boolean;
            fontFamily?: string;
            smartEdges?: boolean;
            releaseToSend?: boolean;
            fullWidthContent?: boolean;
            autoCompactThresholdTokens?: number | null;
            coAuthorCommits?: boolean;
            ottoEnabled?: boolean;
        };
    }>;
    getAgentDetails(): Promise<GetAgentDetailsResponse>;
    getAgent(name: string): Promise<GetAgentResponse>;
    getConfigTools(): Promise<GetConfigToolsResponse>;
    updateAgent(name: string, input: UpdateAgentInput): Promise<UpsertAgentResponse>;
    deleteAgent(name: string, scope?: "local" | "global"): Promise<DeleteAgentResponse>;
    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<AllModelsResponse>;
    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?: string[];
        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?: "light" | "dark";
        tuiTheme?: string;
        vimMode?: boolean;
        compactThread?: boolean;
        fontFamily?: string;
        smartEdges?: boolean;
        releaseToSend?: boolean;
        fullWidthContent?: boolean;
        autoCompactThresholdTokens?: number | null;
        coAuthorCommits?: boolean;
        ottoEnabled?: 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?: "light" | "dark";
            tuiTheme?: string;
            vimMode?: boolean;
            compactThread?: boolean;
            fontFamily?: string;
            smartEdges?: boolean;
            releaseToSend?: boolean;
            fullWidthContent?: boolean;
            autoCompactThresholdTokens?: number | null;
            coAuthorCommits?: boolean;
            ottoEnabled?: boolean;
        };
    }>;
};
export {};
//# sourceMappingURL=config.d.ts.map