export interface InterceptedLLMObsSpan {
    traceId: string;
    spanId: string;
    parentId?: string;
    operationName: string;
    startTime: number;
    finishTime?: number;
    duration?: number;
    tags: Record<string, any>;
    logs: Array<{
        timestamp: number;
        fields: Record<string, any>;
    }>;
    meta: Record<string, any>;
    metrics: Record<string, any>;
    llmobs: {
        kind: string;
        sessionId?: string;
        inputData?: any;
        outputData?: any;
        metadata?: any;
        metrics?: any;
    };
}
export interface InterceptedEvaluationMetric {
    traceId: string;
    spanId: string;
    label: string;
    metricType: string;
    value?: unknown;
    mlApp?: string;
    timestampMs?: number;
    tags: string[];
    raw: Record<string, any>;
}
declare class SpanInterceptor {
    constructor(shouldDropSpans?: boolean);
    init(): void;
    private patchSpanWriterFlush;
    private shouldDrop;
    private capturedSpans;
    private capturedEvaluations;
    private originalSpanFlushMethod;
    private originalEvalFlushMethod;
    private patchEvaluationWriterFlush;
    collectSpansFromFlush(): InterceptedLLMObsSpan[];
    captureSpansFromFlush(spanEvents: any[]): void;
    collectEvaluationsFromFlush(): InterceptedEvaluationMetric[];
    captureEvaluationsFromFlush(metricEvents: any[]): void;
    private convertFlushSpanToIntercepted;
    private convertEvaluationMetric;
    getSpans(): InterceptedLLMObsSpan[];
    getEvaluations(): InterceptedEvaluationMetric[];
    getTraces(): Record<string, InterceptedLLMObsSpan[]>;
    getSpanHierarchy(traceId: string): InterceptedLLMObsSpan[];
    verifySpanStructure(expected: {
        totalSpans?: number;
        workflowSpans?: number;
        agentSpans?: number;
        llmSpans?: number;
        toolSpans?: number;
        hasParentChildRelationship?: boolean;
    }): {
        success: boolean;
        errors: string[];
        details?: any;
    };
    printSpanTree(): void;
    reset(): void;
    restore(): void;
}
export declare const spanInterceptor: SpanInterceptor;
export {};
//# sourceMappingURL=span-interceptor.d.ts.map