import type { ChatMessage, CompletionRequest, ProviderId, ReasoningArtifactReplayObserver, ReasoningPreference, ToolChoice, ToolDefinition } from "../../types.js"; import type { OpenAiCompatibleResult } from "./reasoning-artifacts.js"; import type { ProviderStreamEventSink } from "../stream-events.js"; import type { ReasoningStyle } from "./reasoning-payload.js"; export declare function responsesFirstCandidate(providerId: ProviderId): boolean; export interface ResponsesFirstOptions { provider: string; providerId: ProviderId; baseUrl: string; apiKey: string; model: string; messages: ChatMessage[]; maxTokens?: number | undefined; temperature?: number | undefined; headers?: Record | undefined; signal?: AbortSignal | undefined; reasoning?: ReasoningPreference | undefined; reasoningStyle?: ReasoningStyle | undefined; includeStreamUsage?: boolean | undefined; tools?: ToolDefinition[] | undefined; toolChoice?: ToolChoice | undefined; parallelToolCalls?: boolean | undefined; reasoningArtifactReplayObserver?: ReasoningArtifactReplayObserver | undefined; } interface StreamBridgeOptions { onToken: (token: string) => void; onToolCallDelta?: CompletionRequest["onToolCallDelta"]; onStreamEvent?: ProviderStreamEventSink; } type ChatProbe = (options: ResponsesFirstOptions) => Promise; export declare function openAiCompatibleCompleteViaResponses(options: ResponsesFirstOptions, probeChat: ChatProbe): Promise; export declare function openAiCompatibleStreamViaResponses(options: ResponsesFirstOptions, stream: StreamBridgeOptions, probeChat: ChatProbe): Promise; export declare function resetResponsesWireStatesForTesting(): void; export {};