import type { ResponseInput } from "openai/resources/responses/responses"; import { type Context, type Model, type ProviderSessionState, type ServiceTier, type StreamFunction, type StreamOptions, type Tool, type ToolChoice } from "../types"; export { codexToolCanonicalName, codexToolWireName } from "../codex-tools"; export interface OpenAICodexResponsesOptions extends StreamOptions { reasoning?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"; reasoningSummary?: "auto" | "concise" | "detailed" | null; textVerbosity?: "low" | "medium" | "high"; include?: string[]; codexMode?: boolean; toolChoice?: ToolChoice; preferWebsockets?: boolean; serviceTier?: ServiceTier; } type CodexTransport = "sse" | "websocket"; export interface OpenAICodexWebSocketDebugStats { fullContextRequests: number; deltaRequests: number; lastInputItems: number; lastDeltaInputItems?: number; lastPreviousResponseId?: string; } /** @internal Exported for tests. */ export declare function normalizeCodexToolChoice(choice: ToolChoice | undefined, tools?: Tool[], model?: Model<"openai-codex-responses">): string | Record | undefined; /** @internal Exported for tests. */ export declare function formatCodexUserAgent(platform: string, release: string, arch: string): string; export declare const streamOpenAICodexResponses: StreamFunction<"openai-codex-responses">; export declare function prewarmOpenAICodexResponses(model: Model<"openai-codex-responses">, options?: Pick): Promise; export interface OpenAICodexTransportDetails { websocketPreferred: boolean; lastTransport?: CodexTransport; websocketDisabled: boolean; websocketConnected: boolean; fallbackCount: number; canAppend: boolean; prewarmed: boolean; hasSessionState: boolean; lastFallbackAt?: number; } export declare function getOpenAICodexWebSocketDebugStats(model: Model<"openai-codex-responses">, options?: { sessionId?: string; baseUrl?: string; providerSessionState?: Map; }): OpenAICodexWebSocketDebugStats | undefined; export declare function getOpenAICodexTransportDetails(model: Model<"openai-codex-responses">, options?: { sessionId?: string; baseUrl?: string; preferWebsockets?: boolean; providerSessionState?: Map; }): OpenAICodexTransportDetails; declare function convertMessages(model: Model<"openai-codex-responses">, context: Context): ResponseInput; /** @internal Exported for tests. `classifyCodexFailureEventRetryable` is the retry classification of a Codex failure event. */ export { convertMessages as convertCodexResponsesMessages, isRetryableCodexFailureEvent as classifyCodexFailureEventRetryable, }; type CodexToolPayload = { type: "function"; name: string; description: string; parameters: Record; strict?: boolean; } | { type: "custom"; name: string; description: string; format: { type: "grammar"; syntax: "lark" | "regex"; definition: string; }; }; /** @internal Exported for tests. */ export declare function convertOpenAICodexResponsesTools(tools: Tool[], model: Model<"openai-codex-responses">): CodexToolPayload[]; declare function isRetryableCodexFailureEvent(rawEvent: Record): boolean;