/**
 * Subagent Execution Events
 *
 * Mutable state store for subagent progress, polled by the UI component.
 * Uses simple mutable objects instead of EventEmitter to avoid
 * Ink render flushing issues with in-process async execution.
 *
 * Supports multiple concurrent agents via a Map keyed by agentId.
 */
export interface SubagentEvent {
    subagentName: string;
    status: 'running' | 'tool_call' | 'complete' | 'error';
    currentTool?: string;
    toolCallCount: number;
    turnCount: number;
    tokenCount: number;
    /** Chronological list of tool names invoked by the subagent. */
    toolHistory: string[];
}
/**
 * Legacy single-agent progress state.
 * Still used by single-agent callers and as a fallback.
 */
export declare const subagentProgress: SubagentEvent;
/** Get progress for a specific agent instance */
export declare function getSubagentProgress(agentId: string): SubagentEvent;
/** Get all active agent progress entries */
export declare function getAllSubagentProgress(): Map<string, SubagentEvent>;
/**
 * Input shape for bulk progress updates. Tool history is appended separately
 * via {@link appendSubagentTool} so it isn't part of the routine update payload.
 */
export type SubagentEventInput = Omit<SubagentEvent, 'toolHistory'>;
/** Update progress for a specific agent instance */
export declare function updateSubagentProgressById(agentId: string, event: SubagentEventInput): void;
/** Update progress — called by the executor (legacy single-agent path) */
export declare function updateSubagentProgress(event: SubagentEventInput): void;
/**
 * Append a tool name to the subagent's tool history.
 * Mutates the existing toolHistory array so polling readers see the update
 * without needing to re-fetch the progress object.
 */
export declare function appendSubagentTool(agentId: string | undefined, toolName: string): void;
/** Reset progress for a specific agent instance */
export declare function resetSubagentProgressById(agentId: string): void;
/** Remove a specific agent's progress entry */
export declare function removeSubagentProgress(agentId: string): void;
/** Clear all concurrent agent progress entries */
export declare function clearAllSubagentProgress(): void;
/** Reset legacy single-agent progress state */
export declare function resetSubagentProgress(): void;
//# sourceMappingURL=subagent-events.d.ts.map