import type { IKeyValue, ISpan, ISpanEvent, SpanInfo } from "./types.mjs"; /** * A single OTLP span. Declared as a class (fixed shape, shared prototype) so * every span is the same hidden class — cheaper to build and serialize than ad * hoc literals. The Vercel runtime validates the payload strictly, so every * OTLP field is present even when empty (omitting e.g. `events` or `attributes` * makes the runtime drop the whole batch). */ export declare class Span implements ISpan { traceId: string; spanId: string; parentSpanId: string; name: string; kind: number; startTimeUnixNano: string; endTimeUnixNano: string; traceState: string; droppedAttributesCount: number; events: ISpanEvent[]; droppedEventsCount: number; links: never[]; droppedLinksCount: number; attributes: IKeyValue[]; status: { code: number; message: string; }; constructor(traceId: string, parentSpanId: string, info: SpanInfo, startTimeUnixNano: string, error: unknown); /** Wall-clock nanoseconds as a string, as required by OTLP `*UnixNano` fields. */ static nowUnixNano(): string; /** 8 random bytes, hex-encoded — an OTLP span id (never the all-zero sentinel). */ static randomSpanId(): string; }