/**
 * OpenAI MCP Provider Implementation
 *
 * Provider implementation for OpenAI LLM services
 */
import { LLMRequest, LLMResponse, LLMResponseChunk, ProviderConfig, FunctionDefinition } from '../types';
import { BaseLLMProvider, ProviderRequestContext } from './base-provider';
/**
 * OpenAI MCP Provider
 */
export declare class OpenAIProvider extends BaseLLMProvider {
    private apiKey;
    private baseURL;
    private organization?;
    constructor(config: ProviderConfig);
    /**
     * Initialize the provider
     */
    initialize(): Promise<void>;
    /**
     * Test connection to OpenAI API
     */
    private testConnection;
    /**
     * Check provider health
     */
    health(): Promise<{
        status: 'healthy' | 'unhealthy';
        latency?: number;
        details?: any;
    }>;
    /**
     * Send completion request
     */
    completion(request: LLMRequest, context: ProviderRequestContext): Promise<LLMResponse>;
    /**
     * Send streaming completion request
     */
    stream(request: LLMRequest, context: ProviderRequestContext): AsyncIterable<LLMResponseChunk>;
    /**
     * Generate embeddings
     */
    embed(request: LLMRequest, context: ProviderRequestContext): Promise<LLMResponse>;
    /**
     * Moderate content
     */
    moderate(request: LLMRequest, context: ProviderRequestContext): Promise<LLMResponse>;
    /**
     * Build completion request body
     */
    private buildCompletionRequest;
    /**
     * Build messages array for OpenAI API
     */
    private buildMessages;
    /**
     * Convert function definitions to OpenAI format
     */
    protected convertFunctions(functions: FunctionDefinition[]): any[];
    /**
     * Convert OpenAI completion response to standard format
     */
    private convertCompletionResponse;
    /**
     * Convert OpenAI stream chunk to standard format
     */
    private convertStreamChunk;
    /**
     * Convert OpenAI embedding response to standard format
     */
    private convertEmbeddingResponse;
    /**
     * Convert OpenAI moderation response to standard format
     */
    private convertModerationResponse;
    /**
     * Get HTTP headers for OpenAI API
     */
    private getHeaders;
    /**
     * Handle OpenAI API errors
     */
    private handleAPIError;
}
/**
 * OpenAI Provider Factory
 */
export declare class OpenAIProviderFactory {
    static createProvider(config: ProviderConfig): OpenAIProvider;
    static validateConfig(config: ProviderConfig): boolean;
    static getProviderType(): string;
}
//# sourceMappingURL=openai-provider.d.ts.map