import type { JSONObject } from '@ai-sdk/provider'; import type { InferToolInput, InferToolOutput } from '@ai-sdk/provider-utils'; import type { ProviderMetadata } from '../types'; import type { ValueOf } from '../../src/util/value-of'; import type { ToolSet } from './tool-set'; export type StaticToolResult = ValueOf<{ [NAME in keyof TOOLS]: { type: 'tool-result'; toolCallId: string; toolName: NAME & string; input: InferToolInput; output: InferToolOutput; providerExecuted?: boolean; providerMetadata?: ProviderMetadata; toolMetadata?: JSONObject; dynamic?: false | undefined; preliminary?: boolean; title?: string; }; }>; export type DynamicToolResult = { type: 'tool-result'; toolCallId: string; toolName: string; input: unknown; output: unknown; providerExecuted?: boolean; providerMetadata?: ProviderMetadata; toolMetadata?: JSONObject; dynamic: true; preliminary?: boolean; title?: string; }; export type TypedToolResult = | StaticToolResult | DynamicToolResult;