/**
 * tool-call-analyzer.ts
 * Analyzes tool call patterns: decision vs execution, sequential vs parallel
 */
import type { Span } from '../types';
export interface ToolCallAnalysis {
    isDecision: boolean;
    isExecution: boolean;
    actualToolNames: string[];
    decidedToolName: string | null;
    executionPattern?: 'sequential' | 'parallel' | 'mixed';
}
export declare class ToolCallAnalyzer {
    /**
     * Analyze tool call pattern in a span
     */
    analyzeToolCall(span: Span, children: Span[]): ToolCallAnalysis;
    /**
     * Check if span is a decision span (agent output parser)
     */
    private isDecisionSpan;
    /**
     * Check if span is an execution span
     */
    private isExecutionSpan;
    /**
     * Extract tool name from span
     */
    extractToolName(span: Span): string | null;
    /**
     * Extract decided tool name from agent output
     */
    private extractDecidedToolName;
    /**
     * Extract tool name from output string
     */
    private extractToolNameFromOutput;
    /**
     * Check if span is a tool execution
     */
    private isToolExecution;
    /**
     * Check if output has tool execution patterns
     */
    private hasToolExecutionPattern;
    /**
     * Detect if tool calls are sequential, parallel, or mixed
     */
    detectExecutionPattern(spans: Span[]): 'sequential' | 'parallel' | 'mixed';
    /**
     * Extract tool input from span
     */
    extractToolInput(span: Span): any;
    /**
     * Extract tool output from span
     */
    extractToolOutput(span: Span): any;
}
//# sourceMappingURL=toolCallAnalyzer.d.ts.map