import type { FunctionTool, Response as OpenAiResponse, ResponseInputItem } from 'openai/resources/responses/responses.js';
import type { ReasoningEffort as OpenAiReasoningEffort } from 'openai/resources/shared.js';
import type { ChatMessage, LlmUsage, ReasoningEffort } from '../../../../core/llm/types.js';
import type { AssistantDiagnostics, ToolCall, ToolDefinition } from '../../../../core/types.js';
/**
 * Provider-owned codec for translating between Heddle LLM port types and the
 * OpenAI Responses API payloads/events.
 */
export declare class OpenAiCodec {
    static parseStreamedToolCalls(streamedToolCalls: Map<string, {
        id: string;
        tool: string;
        argumentsText: string;
    }>): ToolCall[];
    static readReasoningSummaryDeltaText(delta: unknown): string | undefined;
    static extractAssistantContent(response: OpenAiResponse, preferToolCalls: boolean): string | undefined;
    static extractAssistantDiagnostics(response: OpenAiResponse, preferToolCalls: boolean): AssistantDiagnostics | undefined;
    static extractUsage(response: OpenAiResponse): LlmUsage | undefined;
    static buildResponsesRequest(messages: ChatMessage[], options: {
        model: string;
        tools: ToolDefinition[];
        oauthMode: boolean;
        reasoningEffort?: ReasoningEffort;
    }): {
        model: string;
        input: ResponseInputItem[];
        tools?: FunctionTool[];
        store: boolean;
        reasoning: {
            summary: 'auto' | 'detailed';
            effort?: OpenAiReasoningEffort;
        };
        instructions?: string;
    };
    private static resolveRequestReasoningEffort;
    private static toOpenAiReasoningEffort;
    private static toResponseInput;
    private static toResponseInputItems;
    private static toResponseTool;
}
//# sourceMappingURL=openai-codec.d.ts.map