/** * GroupProgressCollector — per-group event aggregation for streaming. * * Subscribes to TaskEventBus for each agent's taskId and sends * throttled progress notifications to the MCP client. * * One instance per orchestrate() call (NOT a singleton). */ import type { ToolHandlerContext } from '../types.js'; import { type GroupRecord } from './types.js'; export declare class GroupProgressCollector { private readonly groupId; private readonly sendProgress; private readonly verbosity; private readonly aliasMap; private readonly unsubscribes; private readonly throttle; private commandsRun; private filesChanged; private errorCount; private agentsDone; private totalAgents; private progressCount; constructor(groupId: string, sendProgress: ToolHandlerContext['sendProgress'], totalAgents: number); /** * Register an agent and subscribe to its TaskEventBus events. */ registerAgent(taskId: string, alias: string): void; /** * Send a group-level progress event (e.g., waiting, worktree created). * Not throttled — sent immediately. */ emitGroupEvent(type: string, detail?: string): Promise; /** * Send the markdown agent mapping table. */ emitAgentTable(group: GroupRecord): Promise; /** * Notify that an agent completed (success or failure). * Flushes the throttle immediately for state changes. */ agentCompleted(alias: string, success: boolean): void; /** * Clean up all subscriptions and the throttle timer. */ dispose(): Promise; private onAgentEvent; private emitDetailEvent; private emitSummary; } //# sourceMappingURL=progress.d.ts.map