import React from 'react';
export interface BaseModelConfig {
    /** Provider identifier (e.g. "openai", "ollama", etc.). */
    provider: string;
    /** Display label shown in UI. */
    label: string;
    /** Provider specific model identifier (e.g. "gpt-4.1"). */
    model: string;
    /** Optional description or usage hint. */
    description?: string;
    /** Base URL for the LLM endpoint (overrides provider defaults). */
    baseUrl?: string;
    /** Arbitrary provider specific metadata (temperature, max tokens, etc). */
    settings?: Record<string, unknown>;
    /** Provider specific connection details (API keys, base URLs, etc). */
    connection?: Record<string, string | number | boolean | undefined | null | object>;
    clientHeaders?: Record<string, string>;
    logLevel?: 'off' | 'error' | 'warn' | 'info' | 'debug';
    apiMode?: 'responses' | 'chat_completions';
    useLegacyMessages?: boolean;
}
export interface StoredModel extends BaseModelConfig {
    id: string;
    /** Flag to mark a model as disabled without removing it. */
    disabled?: boolean;
}
interface ModelState {
    byId: Record<string, StoredModel>;
    order: string[];
    defaultModelId: string | null;
}
export interface ModelProviderProps {
    children: React.ReactNode;
    initialModels?: StoredModel[];
    storageKey?: string;
}
export interface ModelContextValue {
    state: ModelState;
    models: StoredModel[];
    defaultModel: StoredModel | null;
    addModel: (model: Omit<StoredModel, 'id'> & Partial<Pick<StoredModel, 'id'>>) => string;
    updateModel: (id: string, model: Partial<StoredModel>) => void;
    removeModel: (id: string) => void;
    setDefaultModel: (id: string | null) => void;
    clearModels: () => void;
    getModel: (id: string) => StoredModel | undefined;
}
declare const ModelContext: React.Context<ModelContextValue | undefined>;
export declare const ModelProvider: React.FC<ModelProviderProps>;
export declare const useModelContext: () => ModelContextValue;
export default ModelContext;
//# sourceMappingURL=ModelContext.d.ts.map