/**
 * Tool Calls diagnostic panel data provider.
 *
 * Subscribes to tool lifecycle events via the RuntimeEventBus and maintains
 * a bounded buffer of ToolCallEntry records. Provides filtered snapshots
 * for the tool-calls diagnostics panel.
 *
 * Phase timeline tracking allows the panel to render latency breakdowns
 * and highlight failures at any lifecycle phase.
 */
import type { RuntimeEventBus } from '../../events/index.js';
import { type ToolCallEntry, type DiagnosticFilter, type ComponentConfig } from '../types.js';
/**
 * ToolCallsPanel — diagnostic data provider for tool call telemetry.
 *
 * Listens to all tool domain events and builds a per-call timeline.
 * Completed calls are transferred to a bounded history buffer.
 */
export declare class ToolCallsPanel {
    private readonly _config;
    private readonly _eventBus;
    /** Active calls keyed by callId. */
    private readonly _active;
    /** Completed call history (oldest first). */
    private readonly _history;
    /** Registered change notification callbacks. */
    private readonly _subscribers;
    /** Unsubscribe function returned by the event bus. */
    private _unsub;
    constructor(eventBus: RuntimeEventBus, config?: ComponentConfig);
    /**
     * Subscribe to the tool domain and wire up event handlers.
     */
    private _start;
    /**
     * Handle a tool domain envelope, routing to the appropriate update method.
     */
    private _handleEnvelope;
    /**
     * Move a completed record from active to history.
     */
    private _finalize;
    /**
     * Return a filtered snapshot of tool call entries.
     * Active calls are included as their current in-progress state.
     * History is ordered most-recent first.
     *
     * @param filter - Optional filter to restrict entries.
     */
    getSnapshot(filter?: DiagnosticFilter): ToolCallEntry[];
    /**
     * Register a callback invoked whenever the data changes.
     * @returns An unsubscribe function.
     */
    subscribe(callback: () => void): () => void;
    /**
     * Release all event bus subscriptions and clear internal state.
     * After disposal the panel will no longer receive new events.
     */
    dispose(): void;
    private _notify;
}
//# sourceMappingURL=tool-calls.d.ts.map