import { AgentDefinition } from '../types/types.js';
export interface RunningTool {
    id: string;
    toolName: string;
    agentName: string;
    args: string;
    startTime: number;
    abortController?: AbortController;
    timedOut?: boolean;
    completed?: boolean;
    failed?: boolean;
    result?: string;
    error?: string;
}
export interface ToolCompletionEvent {
    id: string;
    toolName: string;
    agentName: string;
    duration: number;
    timedOut: boolean;
    result?: string;
    error?: string;
}
export declare class RunningToolTracker {
    private runningTools;
    private completionHandlers;
    addRunningTool(id: string, toolName: string, agentName: string, args: string): RunningTool;
    markTimedOut(id: string): void;
    completeRunningTool(id: string, result: string, _agent?: AgentDefinition): Promise<void>;
    failRunningTool(id: string, error: string, _agent?: AgentDefinition): Promise<void>;
    getRunningTool(id: string): RunningTool | undefined;
    getAllRunningTools(): RunningTool[];
    getRunningToolsForAgent(agentName: string): RunningTool[];
    abortRunningTool(id: string): void;
    onCompletion(handler: (event: ToolCompletionEvent) => void): void;
    clear(): void;
    isToolRunning(agentName: string, toolName: string): boolean;
    getRunningToolCount(): number;
    waitForTool(id: string, timeout?: number): Promise<ToolCompletionEvent | null>;
}
export declare const runningToolTracker: RunningToolTracker;
//# sourceMappingURL=running_tool_tracker.d.ts.map