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 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";
            vimMode?: boolean;
            compactThread?: boolean;
            fontFamily?: string;
            smartEdges?: boolean;
            releaseToSend?: boolean;
            fullWidthContent?: boolean;
            autoCompactThresholdTokens?: number | null;
        };
    }>;
    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";
        vimMode?: boolean;
        compactThread?: boolean;
        fontFamily?: string;
        smartEdges?: boolean;
        releaseToSend?: boolean;
        fullWidthContent?: boolean;
        autoCompactThresholdTokens?: number | null;
        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";
            vimMode?: boolean;
            compactThread?: boolean;
            fontFamily?: string;
            smartEdges?: boolean;
            releaseToSend?: boolean;
            fullWidthContent?: boolean;
            autoCompactThresholdTokens?: number | null;
        };
    }>;
};
export {};
//# sourceMappingURL=config.d.ts.map