import { ModelProvider, LLMMessage, ModelResponse } from './types';
/**
 * Configuration for the model manager
 */
export interface ModelManagerConfig {
    defaultProvider?: string;
    defaultModel?: string;
    apiKey?: string;
    maxRetries?: number;
    retryDelay?: number;
}
/**
 * Manages model providers and handles communication with LLMs
 */
export declare class ModelManager {
    private providers;
    private config;
    constructor(config?: ModelManagerConfig);
    /**
     * Register a new model provider
     */
    registerProvider(name: string, provider: ModelProvider): void;
    /**
     * Get a registered provider
     */
    getProvider(name: string): ModelProvider | undefined;
    /**
     * Send messages to a model with retry logic
     */
    chat(messages: LLMMessage[], options?: {
        model?: string;
        provider?: string;
        apiKey?: string;
        maxRetries?: number;
        abortSignal?: AbortSignal;
    }): Promise<ModelResponse>;
    /**
     * Update configuration
     */
    updateConfig(newConfig: Partial<ModelManagerConfig>): void;
    /**
     * Get current configuration
     */
    getConfig(): ModelManagerConfig;
}
