import type { ACodeBuiltInTool } from "./built-in-file-tools.js"; import type { SubAgentType, SubAgentStatus } from "./sub-agent-types.js"; import type { ToolCatalogEntry } from "./tool-allocation.js"; export interface ACodeSubAgentToolDeps { spawnSubAgent: (opts: { subagentType: SubAgentType; description: string; prompt: string; allowedTools?: string[]; }) => Promise<{ subId: string; }>; listSubAgents: () => Promise<{ running: Array; history: Array; }>; getSubAgentStatus: (subId: string) => Promise; awaitSubAgents: (subIds: string[], timeoutMs?: number) => Promise>; abortSubAgent: (subId: string) => Promise; listSubAgentToolCatalog: () => Promise; } export interface SubAgentInfo { subId: string; subagentType: SubAgentType; description: string; status: SubAgentStatus; startedAt: number; endedAt?: number; durationMs?: number; } export interface SubAgentDetail extends SubAgentInfo { prompt: string; result?: string; errorMessage?: string; contextSnapshot?: { currentTool?: string; lastAssistantText?: string; tokenUsage: { input: number; output: number; }; messageCount: number; updatedAt: string; }; } export declare function createSubAgentTool(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool; export declare function createListSubAgentsTool(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool; export declare function createGetSubAgentStatusTool(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool; export declare function createAbortSubAgentTool(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool; export declare function createListSubAgentToolsTool(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool; export declare function createSubAgentTools(deps: ACodeSubAgentToolDeps): ACodeBuiltInTool[];