import { type Api, type Model, type Tool, type TranscriptContext, type Usage } from "@earendil-works/pi-ai"; import type { ResponseInput as OpenAIResponseInput, ResponseOutputMessage, Tool as OpenAITool } from "openai/resources/responses/responses.js"; import { type TextSignaturePhase } from "./signatures.ts"; import type { ServiceTier } from "../openai-codex/types.ts"; type ResponseInput = Array | (Omit & { phase?: TextSignaturePhase | null; })>; export interface OpenAIResponsesStreamOptions { serviceTier?: ServiceTier; grammarToolInputProperties?: ReadonlyMap | undefined; resolveServiceTier?: (responseServiceTier: ServiceTier, requestServiceTier: ServiceTier) => ServiceTier; applyServiceTierPricing?: (usage: Usage, serviceTier: ServiceTier) => void; onOutputItemDone?: (item: unknown) => void; } interface ConvertResponsesMessagesOptions { includeSystemPrompt?: boolean | undefined; grammarToolInputProperties?: ReadonlyMap | undefined; supportsMidConvoSystemMessages?: boolean | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; toolOptions?: ConvertResponsesToolsOptions | undefined; } interface ConvertResponsesToolsOptions { strict?: boolean | null | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; toolSearchResult?: boolean | undefined; } export declare const CODEX_TOOL_CALL_PROVIDERS: Set; export declare function normalizeResponsesId(part: string): string; export declare function convertResponsesMessages(model: Model, context: TranscriptContext, allowedToolCallProviders: ReadonlySet, options?: ConvertResponsesMessagesOptions): ResponseInput; export declare function convertResponsesTools(tools: readonly Tool[], options?: ConvertResponsesToolsOptions): OpenAITool[]; export { processResponsesStream } from "./stream.ts";