/** * Cross-Language Trace Comparison Utilities * * This module provides utilities to compare traces generated by Python and TypeScript * OpenLIT SDKs to ensure consistency across implementations. * Uses SemanticConvention keys so comparisons stay in sync with the SDK. */ import { Span } from '@opentelemetry/api'; import { ReadableSpan } from '@opentelemetry/sdk-trace-base'; export interface NormalizedTrace { spanName: string; spanKind: string; attributes: Record; events: Array<{ name: string; attributes?: Record; }>; status: { code: string; message?: string; }; duration?: number; } export interface TraceComparisonResult { match: boolean; differences: string[]; pythonTrace?: NormalizedTrace; typescriptTrace?: NormalizedTrace; } /** * Normalize a TypeScript span to a comparable format */ export declare function normalizeTypeScriptSpan(span: ReadableSpan | Span): NormalizedTrace; /** * Compare two normalized traces */ export declare function compareTraces(pythonTrace: NormalizedTrace, typescriptTrace: NormalizedTrace): TraceComparisonResult; /** * Extract key metrics from a trace for comparison */ export declare function extractKeyMetrics(trace: NormalizedTrace): { tokens: { input: number; output: number; total: number; }; cost: number; model: string; operation: string; system: string; }; /** * Compare key metrics between Python and TypeScript traces */ export declare function compareMetrics(pythonTrace: NormalizedTrace, typescriptTrace: NormalizedTrace): { match: boolean; differences: string[]; }; /** * Create a test helper that validates trace consistency */ export declare function createTraceValidator(providerName: string, expectedAttributes?: string[]): { validateTrace: (trace: NormalizedTrace) => { valid: boolean; errors: string[]; }; };