import { BaseProvider, type ProviderInfo } from './base.js'; import type { CompletionRequest } from '../types/messages.js'; import type { NexusResponse, NexusStream } from '../types/response.js'; import type { OpenAIProviderConfig } from '../types/config.js'; /** OpenAI's Chat Completions API, and any server compatible with it. */ export declare class OpenAIProvider extends BaseProvider { /** Provider name and locality. */ readonly info: ProviderInfo; private client?; private config; constructor(config: OpenAIProviderConfig); private getClient; private formatMessages; /** Runs one completion. */ complete(request: CompletionRequest): Promise; /** Streams one completion. */ stream(request: CompletionRequest): NexusStream; private createChatParams; /** * Whether to ask for usage totals on the final streamed chunk. * * Enabled for OpenAI and Azure by default, where `stream_options` is part of the API. Other * OpenAI-compatible servers vary, so they opt in through `streamUsage` rather than risking a * rejected request. */ protected includeStreamUsage(): boolean; private mapFinishReason; private completeResponses; private streamResponses; private createResponsesParams; private requiresResponsesApi; private formatResponsesInput; private formatResponsesTools; private extractChatToolCalls; private extractResponsesText; private extractResponsesToolCalls; private isResponseFunctionCall; private mapResponsesFinishReason; private createMeta; private requestOptions; private withProviderModel; private stripConfiguredPrefix; private flushToolCalls; }