import type { ToolCall, CompletionStats } from '@qvac/sdk'; export declare function responseId(): string; export declare function messageId(): string; export declare function functionCallOutputItemId(): string; export interface BuildResponseObjectParams { id: string; modelAlias: string; text: string; toolCalls: ToolCall[] | null | undefined; createdAtSec: number; metadata: Record | null | undefined; temperature: number | undefined; topP: number | undefined; maxOutputTokens: number | undefined; parallelToolCalls: boolean; previousResponseId: string | null | undefined; store: boolean; /** When set (e.g. streaming), must match SSE item ids so finalized response matches the stream. */ messageItemId?: string; /** When set, must align with `toolCalls` length; same ids as streamed function_call items. */ functionCallItemIds?: string[]; /** From SDK completion stats; `emittedTokens` / `generatedTokens` map to `usage.output_tokens`. */ stats?: CompletionStats; /** * When set (from `drainCompletion`), wins over stats-derived usage so * streaming and blocking Responses stay aligned. */ completionTokens?: number; /** * Terminal `stopReason` from the SDK. `length` maps to OpenAI's * `status: 'incomplete'` + `incomplete_details.reason: 'max_output_tokens'` * (the Responses-API analogue of chat's `finish_reason: 'length'`), unless * tool calls take precedence with `requires_action`. */ stopReason?: string; } export declare function buildResponseObject(params: BuildResponseObjectParams): Record; //# sourceMappingURL=responses-shape.d.ts.map