import { Agent, DAGNode, LinearStep, Model, Span, Tool } from '../../../types';
import { LlamaIndexInstrumentationKind } from '../types';
/**
 * Handler for one LlamaIndex instrumentation variant.
 * Encapsulates scoping, agent/tool/model detection, extraction, and DAG/linear flow.
 * Other frameworks can adopt a similar pattern (detect variant → delegate to handler).
 */
export interface LlamaIndexInstrumentationHandler {
    readonly kind: LlamaIndexInstrumentationKind;
    getWorkflowScopedSpans(spans: Span[]): Span[];
    getTools(spans: Span[]): Tool[];
    getAgents(spans: Span[]): Agent[];
    getModels(spans: Span[]): Model[];
    getModelsFromUnscoped(spans: Span[]): Model[];
    generateDag(spans: Span[]): DAGNode[];
    generateLinearFlow(spans: Span[]): LinearStep[];
}
//# sourceMappingURL=types.d.ts.map