import { LLMGenerationOptions, LLMResponse, OpenAIConfig, LLMToolOptions, LLMToolResponse, LLMConversation, LLMStreamChunk } from '../../types/llm-providers';
import { BaseLLMProvider } from './BaseLLMProvider';
import { Tool } from '../../types';
export declare class OpenAIProvider extends BaseLLMProvider {
    readonly type: "openai";
    readonly name = "OpenAI";
    config: OpenAIConfig;
    private client?;
    constructor(config: OpenAIConfig);
    supportsTools(): boolean;
    supportsStreaming(): boolean;
    generateResponse(options: LLMGenerationOptions): Promise<LLMResponse>;
    generateWithTools(options: LLMToolOptions): Promise<LLMToolResponse>;
    handleToolLoop(conversation: LLMConversation, tools: Tool[]): Promise<LLMToolResponse>;
    streamResponse(options: LLMGenerationOptions): AsyncIterable<LLMStreamChunk>;
    getMaxTokens(): number;
    isAvailable(): Promise<boolean>;
    isConfigured(): boolean;
    getSupportedModels(): string[];
}
//# sourceMappingURL=OpenAIProvider.d.ts.map