import { Constants } from '@/common'; import type { SubagentConfig } from '@/types'; import type { JsonSchemaType, LCTool } from '@/types/tools'; export declare const SubagentToolName = Constants.SUBAGENT; export declare const SubagentToolDescription = "Delegate a task to a specialized subagent that runs in an isolated context window. The subagent executes independently and returns only its final text result \u2014 all intermediate tool calls, reasoning, and context stay isolated.\n\nWHEN TO USE:\n- The task is self-contained and can be described in a single prompt.\n- You want to offload verbose or exploratory work without bloating your own context.\n- A specialized subagent is available for the task domain.\n\nWHAT HAPPENS:\n- A fresh agent is created with the task description as its only input.\n- The subagent runs to completion using its own tools and context.\n- Only the final text response is returned to you.\n\nCONSTRAINTS:\n- subagent_type must match one of the available types listed below.\n- The subagent cannot see your conversation history."; export declare const SubagentToolSchema: { readonly type: "object"; readonly properties: { readonly description: { readonly type: "string"; readonly description: "Complete task description for the subagent. This is the ONLY information it receives — include all necessary context, requirements, and constraints."; }; readonly subagent_type: { readonly type: "string"; readonly description: "Which subagent type to delegate to. Must be one of the available types."; }; }; readonly required: string[]; }; export declare const SubagentToolDefinition: LCTool; /** * Build the name, schema, and description params for `tool()` from available configs. * Used by `Graph.createAgentNode()` when constructing the runtime tool instance. * Extends `SubagentToolSchema` by populating `subagent_type.enum` dynamically. */ export declare function buildSubagentToolParams(configs: SubagentConfig[]): { name: string; schema: JsonSchemaType; description: string; }; /** * Create a SubagentTool LCTool definition with dynamic enum and description * populated from the available subagent configs. * Used for the tool registry in event-driven mode. */ export declare function createSubagentToolDefinition(configs: SubagentConfig[]): LCTool;