import type { Tool as OpenAITool } from "openai/resources/responses/responses"; import { type AssistantMessage, type Model, type ServiceTier, type StreamFunction, type StreamOptions, type Tool, type ToolChoice } from "../types"; import { type OpenAIResponsesToolChoice } from "../utils/tool-choice"; export declare function normalizeOpenAIResponsesPromptCacheKey(sessionId: string | undefined): string | undefined; export interface OpenAIResponsesOptions extends StreamOptions { reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max"; reasoningSummary?: "auto" | "detailed" | "concise" | null; serviceTier?: ServiceTier; toolChoice?: ToolChoice; /** * Enforce strict tool call/result pairing when building Responses API inputs. * Azure OpenAI and GitHub Copilot Responses paths require tool results to match prior tool calls. */ strictResponsesPairing?: boolean; } /** Test seam: the provider base URL as resolved from trusted env. */ export declare function resolveOpenAIProviderBaseUrlForTest(baseUrl: string | undefined, authCredentialType: "api_key" | "oauth" | undefined): string; export declare function isOpenCodeGoEmptyCompletedResponse(model: Model<"openai-responses">, output: AssistantMessage, nativeOutputItemCount: number): boolean; /** * Generate function for OpenAI Responses API */ export declare const streamOpenAIResponses: StreamFunction<"openai-responses">; export declare function supportsDeveloperRole(modelOrBaseUrl: Pick | string): boolean; /** * Whether this model should get the OpenAI custom-tool grammar variant * for `apply_patch`. The generated model catalog sets * `model.applyPatchToolType` for first-party GPT-5 Responses models; this * runtime path only consumes that metadata. * @internal Exported for tests. */ export declare function supportsFreeformApplyPatch(model: Model<"openai-responses">): boolean; /** @internal Exported for tests. */ export declare function mapOpenAIResponsesToolChoiceForTools(choice: ToolChoice | undefined, tools: Tool[], model: Model<"openai-responses">): OpenAIResponsesToolChoice; /** @internal Exported for tests. */ export declare function resolveReservedToolNames(model: Model<"openai-responses">): readonly string[]; /** @internal Exported for tests. */ export declare function convertTools(tools: Tool[], strictMode: boolean, model: Model<"openai-responses">): OpenAITool[];