import type { TraceContext, TracingOptions } from './types'; export declare class Tracer { private context; private activeSpans; constructor(); /** * Start a new trace span */ startSpan(options: TracingOptions): TraceContext; /** * Finish a trace span */ finishSpan(spanId: string): number | undefined; /** * Execute a function within a trace span */ trace(options: TracingOptions, fn: () => T | Promise): Promise; /** * Add metadata to current span */ addMetadata(key: string, value: unknown): void; /** * Add tags to current span */ addTags(...tags: string[]): void; /** * Get current trace context */ getCurrentTrace(): TraceContext | undefined; /** * Get all active spans */ getActiveSpans(): TraceContext[]; /** * Find a span by ID */ findSpanById(spanId: string): TraceContext | undefined; /** * Generate a unique trace ID */ private generateTraceId; /** * Generate a unique span ID */ private generateSpanId; }