import type { ZodType } from 'zod'; import type { ContentBlockParam } from '@anthropic-ai/sdk/resources'; import type { AgentModelInput, CanUseTool, IAgentSession } from './types.js'; import type { ModelProvider } from './provider.js'; import type { SubagentManager } from './subagent.js'; import { type DAGEdge, type DAGRunResult } from './dag.js'; import type { DelegationBudget } from './tools/delegation-budget.js'; import type { ImageBlockAttachment } from './content/image-blocks.js'; export interface SubagentDAGNode { id: string; systemPrompt: string; promptBuilder: (inputs: Record) => string; model?: AgentModelInput; outputSchema?: ZodType; canUseTool?: CanUseTool; idPrefix?: string; agentType?: string; parentId?: string; cwd?: string; readRoots?: string[]; extraReadRoots?: string[]; writeRoots?: string[]; apiKey?: string; maxToolUseIterations?: number; maxTurns?: number; provider?: ModelProvider; buildPromptAsync?: (inputs: Record) => Promise; resolvedAttachments?: ImageBlockAttachment[]; } export interface SubagentDAGOptions { manager: SubagentManager; parentSession: Pick; nodes: SubagentDAGNode[]; edges: DAGEdge[]; failFast?: boolean; nodeTimeoutMs?: number; delegationBudget?: DelegationBudget; } export declare function runSubagentDAG(options: SubagentDAGOptions): Promise;