/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type TodoToolCall } from '../tools/todo-schemas.js';
interface TodoToolCalls {
    executing: Map<string, TodoToolCall>;
    completed: TodoToolCall[];
}
/**
 * Service to track tool calls and associate them with active todos
 */
export declare class ToolCallTrackerService {
    /**
     * Starts tracking an executing tool call
     */
    static startTrackingToolCall(sessionId: string, toolName: string, parameters: Record<string, unknown>, agentId?: string): string | null;
    /**
     * Marks a tool call as completed and moves it to the completed array
     */
    static completeToolCallTracking(sessionId: string, toolCallId: string, agentId?: string): Promise<void>;
    /**
     * Marks a tool call as failed
     */
    static failToolCallTracking(sessionId: string, toolCallId: string, agentId?: string): void;
    /**
     * Gets all tool calls (executing and completed) for a specific todo
     */
    static getAllToolCalls(sessionId: string, todoId: string, agentId?: string): TodoToolCall[];
    /**
     * Subscribes to tool call updates
     */
    static subscribeToUpdates(sessionId: string, callback: () => void, agentId?: string): () => void;
    /**
     * Gets all tool calls for testing and debugging purposes
     */
    static getAllToolCallsForSession(sessionId: string, agentId?: string): Map<string, TodoToolCalls>;
    /**
     * Clears all tool calls for a session (for testing purposes)
     */
    static clearToolCallsForSession(sessionId: string, agentId?: string): void;
    /**
     * Generates a unique ID for tool calls
     */
    private static generateId;
    /**
     * Notifies all subscribers of updates
     */
    private static notifySubscribers;
    /**
     * Resolve an agent identifier, defaulting when missing.
     */
    private static getScopedAgentId;
}
export {};
