import type { ResponseInput } from "./providers/openai-responses-wire.js"; import type { CacheRetention, OpenAIResponsesHistoryPayload, ProviderPayload } from "./types.js"; export { isRecord } from "@oh-my-pi/pi-utils"; export declare function normalizeSystemPrompts(systemPrompt: readonly string[] | string | undefined | null): string[]; export declare function normalizeToolCallId(id: string): string; type ResponsesToolItemIdPrefix = "fc" | "ctc"; export declare function normalizeResponsesToolCallId(id: string, itemPrefix?: ResponsesToolItemIdPrefix): { callId: string; itemId: string; }; /** * Truncate an OpenAI Responses API item ID to 64 characters. * IDs exceeding the limit are replaced with a hash-based ID using the given prefix. */ export declare function truncateResponseItemId(id: string, prefix: string): string; interface OpenAIResponsesReplaySanitizeOptions { supportsImageDetailOriginal?: boolean; supportsComputerUse?: boolean; } /** * Removes response-only lifecycle status from item types that reject it when replayed as input. * * Returns the original array when no item needs sanitization. */ export declare function stripOpenAIResponsesOutputOnlyStatusesForReplay(items: TItem[]): TItem[]; export declare function sanitizeOpenAIResponsesHistoryItemsForReplay(items: Array>, options?: OpenAIResponsesReplaySanitizeOptions): ResponseInput; /** Strip reasoning IDs whose only linked native output is a computer call that will be demoted. */ export declare function stripOpenAIResponsesComputerLinkedReasoningIdsForReplay(items: ResponseInput): ResponseInput; /** * Finalize provisional native-computer reasoning IDs after the complete * Responses input has been rebuilt, model-adapted, and orphan-repaired. */ export declare function stripUnpairedOpenAIResponsesComputerReasoningIdsForReplay(items: ResponseInput): ResponseInput; /** * Sanitize assistant-native Responses history for replay. * * Returns `undefined` for hidden-empty turns that only contain reasoning and an * empty assistant message, allowing callers to rebuild visible transcript * history instead of replaying stale native state. */ export declare function sanitizeOpenAIResponsesAssistantHistoryItemsForReplay(items: Array>, options?: OpenAIResponsesReplaySanitizeOptions): ResponseInput | undefined; /** * Drop hidden-only fallback assistant replay after a native Responses snapshot is rejected. */ export declare function sanitizeOpenAIResponsesAssistantFallbackItemsForReplay(items: ResponseInput): ResponseInput; export declare function createOpenAIResponsesHistoryPayload(provider: string, items: Array>, incremental?: boolean): OpenAIResponsesHistoryPayload; export declare function getOpenAIResponsesHistoryPayload(providerPayload: ProviderPayload | undefined, currentProvider: string, fallbackProvider?: string): OpenAIResponsesHistoryPayload | undefined; export declare function getOpenAIResponsesHistoryItems(providerPayload: ProviderPayload | undefined, currentProvider: string, fallbackProvider?: string): Array> | undefined; /** * Resolve cache retention preference: explicit request option first, then the * `PI_CACHE_RETENTION` env override (`long` | `short` | `none`), then the * provider-supplied fallback. */ export declare function resolveCacheRetention(cacheRetention?: CacheRetention, fallback?: CacheRetention): CacheRetention;