import type { ModelMessage, ToolSet, TypedToolResult } from "ai"; import type { RuntimeToolResultActionResult } from "#runtime/actions/types.js"; type ToolResponsePart = Extract["content"][number]; type ToolResultPart = Extract; /** * Builds a `RuntimeToolResultActionResult` from a raw tool output value. * * This is the single coercion point for `action.result` projection. Both * native tool execution (via {@link createRuntimeToolResultFromStepResult} / * {@link createRuntimeToolResultFromMessagePart}) and code-mode nested tool * calls funnel through here, so the raw-output-vs-`toModelOutput` decision — * always raw — is decided once. The output is passed through structurally * because it is already JSON-serialized (the AI SDK tool result, or the * code-mode worker bridge). */ export declare function createRuntimeToolResultFromValue(input: { readonly callId: string; readonly toolName: string; readonly output: unknown; readonly isError?: boolean; }): RuntimeToolResultActionResult; /** * Builds a `RuntimeToolResultActionResult` from one AI SDK * {@link TypedToolResult}. Used for tool results captured on the AI SDK * step result and for `tool-result` parts that arrive on the stream. */ export declare function createRuntimeToolResultFromStepResult(toolResult: TypedToolResult): RuntimeToolResultActionResult; /** * Builds a `RuntimeToolResultActionResult` from one tool-result message * part as it appears on `step.response.messages`. Used as a fallback when * the result is missing from `step.toolResults` (some providers — notably * after `tool-output-denied` chunks — surface the result only on the * response messages array). */ export declare function createRuntimeToolResultFromMessagePart(part: ToolResultPart): RuntimeToolResultActionResult; export {};