import OpenAI from 'openai';
import { UnifiedChatRequest, UnifiedChatResponse, UnifiedStreamEventResponse, Tool as UnifiedTool } from '../../types/unified-api.js';
import { MCPServerConfig } from '../../types/mcp.js';
import BaseProvider from '../base-provider.js';
type OpenAIAPI = 'responses' | 'chat_completions';
export declare class OpenAIAgentProvider extends BaseProvider {
    private mcpServerConfigs?;
    private providerTools;
    private openaiClient?;
    private openaiApi;
    constructor({ apiKey, client, model, tools, mcpServers, openaiApi, logLevel, }: {
        apiKey?: string;
        client?: OpenAI;
        model?: string;
        tools?: UnifiedTool[];
        mcpServers?: MCPServerConfig[];
        openaiApi?: OpenAIAPI;
        logLevel?: string;
    });
    chat(request: UnifiedChatRequest): Promise<UnifiedChatResponse>;
    /**
     * Streaming: emits chunk responses as they arrive, then a final, fully-unified message.
     */
    stream(request: UnifiedChatRequest): AsyncIterableIterator<UnifiedStreamEventResponse>;
    private buildEphemeralAgent;
    private initMCPServers;
    private closeMCPServers;
    private toAgentInputs;
    private collectSystemText;
    private adaptFunctionTools;
    private extractTextFromContent;
    private convertAgentResultToUnified;
    /**
     * Extracts top-level `text`, `message.content` (formatted as BaseContent),
     * `model`, and `usage` from either RunResult or StreamedRunResult.
     * - Uses `state.generatedItems` for content extraction
     * - Uses `state.context.usage` for usage stats
     */
    private extractUnifiedPayload;
    private handleError;
    private mapErrorType;
}
export {};
//# sourceMappingURL=agent-provider.d.ts.map