import { AIService, ChatMessage, ChatResponse, AIModelInfo, AsyncInitializable, Disposable } from '../../core/types';
export interface AIServiceConfig {
    provider: string;
    model: string;
    apiKey: string;
    maxTokens?: number;
    temperature?: number;
    timeout?: number;
}
export interface AIServiceOptions {
    retryAttempts?: number;
    retryDelay?: number;
    enableLogging?: boolean;
}
export declare abstract class BaseAIService implements AIService, AsyncInitializable, Disposable {
    protected config: AIServiceConfig;
    protected options: AIServiceOptions;
    protected initialized: boolean;
    protected history: ChatMessage[];
    constructor(config: AIServiceConfig, options?: AIServiceOptions);
    abstract initialize(): Promise<void>;
    abstract sendMessage(message: string): Promise<ChatResponse>;
    abstract testConnection(): Promise<boolean>;
    abstract dispose(): Promise<void>;
    isReady(): boolean;
    isInitialized(): boolean;
    clearHistory(): void;
    getHistory(): ChatMessage[];
    getModelInfo(): AIModelInfo;
    protected abstract getCapabilities(): string[];
    protected addToHistory(message: ChatMessage): void;
    protected generateMessageId(): string;
    protected withRetry<T>(operation: () => Promise<T>, context: string): Promise<T>;
    private delay;
}
//# sourceMappingURL=ai.interface.d.ts.map