/**
 * Base provider interface for LLM providers.
 */
import { Message, LLMResponse, TokenUsage, ResponseFormat } from '../core/models';
export declare abstract class BaseProvider {
    protected apiKey?: string;
    protected config: Record<string, any>;
    constructor(apiKey?: string, config?: Record<string, any>);
    abstract get name(): string;
    abstract get supportedModels(): string[];
    abstract chatCompletion(model: string, messages: Message[], options?: {
        temperature?: number;
        maxTokens?: number;
        responseFormat?: ResponseFormat;
        [key: string]: any;
    }): Promise<LLMResponse>;
    abstract calculateCost(model: string, tokens: TokenUsage): number;
    supportsModel(model: string): boolean;
    validateConfig(): boolean;
}
export type LLMProvider = BaseProvider;
//# sourceMappingURL=base.d.ts.map