import { SpanExporter, ReadableSpan, SpanProcessor } from '@opentelemetry/sdk-trace-base'; import { ExportResult } from '@opentelemetry/core'; import { BackendProvider } from '../types'; export declare class JsonSpanExporter implements SpanExporter { private readonly dataProvider; /** * Serialize trace DB writes: (1) avoids overlapping `createTraces` on the single pooled * connection, (2) ensures every OTEL export callback runs (lock+queue dropped callbacks). * ALS on `Database` does not order OTEL work vs in-flight Knex commits — deferral below does. */ private exportChain; constructor(dataProvider: BackendProvider); /** * Export spans. * @param spans * @param resultCallback */ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void; /** * Shutdown the exporter. */ shutdown(): Promise; /** * Exports any pending spans in exporter */ forceFlush(): Promise; /** * converts span info into more readable format * @param span */ private exportInfo; private persistSpans; } export declare const JsonSpanProcessor: (dataProvider: BackendProvider) => SpanProcessor;