import { z } from "zod"; import { CallbackManagerForToolRun } from "../callbacks/manager.js"; import { StructuredTool, Tool, ToolParams } from "./base.js"; export interface BaseDynamicToolInput extends ToolParams { name: string; description: string; returnDirect?: boolean; } export interface DynamicToolInput extends BaseDynamicToolInput { func: (input: string, runManager?: CallbackManagerForToolRun) => Promise; } export interface DynamicStructuredToolInput = z.ZodObject> extends BaseDynamicToolInput { func: (input: z.infer, runManager?: CallbackManagerForToolRun) => Promise; schema: T; } /** * A tool that can be created dynamically from a function, name, and description. */ export declare class DynamicTool extends Tool { name: string; description: string; func: DynamicToolInput["func"]; constructor(fields: DynamicToolInput); /** @ignore */ _call(input: string, runManager?: CallbackManagerForToolRun): Promise; } export declare class DynamicStructuredTool = z.ZodObject> extends StructuredTool { name: string; description: string; func: DynamicStructuredToolInput["func"]; schema: T; constructor(fields: DynamicStructuredToolInput); protected _call(arg: z.output, runManager?: CallbackManagerForToolRun): Promise; }