/** * Browser Resilient Exporter * * Simplified resilient exporter for browser environments. * Ensures export failures don't affect the main thread. */ import type { SpanExporter, ReadableSpan } from "@opentelemetry/sdk-trace-base"; import { ExportResult } from "@opentelemetry/core"; /** * Configuration for the browser resilient exporter. */ export interface BrowserResilientExporterConfig { /** Underlying exporter to wrap */ delegate: SpanExporter; /** Max items to buffer before dropping (default: 512, lower than Node for memory) */ maxQueueSize?: number; /** Export timeout in ms (default: 10000, shorter for browser) */ exportTimeoutMs?: number; /** Callback when items are dropped */ onDrop?: (count: number, reason: "queue_full" | "export_failed" | "timeout") => void; } /** * Browser-compatible resilient exporter. * * CRITICAL: Export failures must never block or affect the main thread. * This wrapper catches all errors and timeouts. */ export declare class BrowserResilientExporter implements SpanExporter { private readonly delegate; private readonly maxQueueSize; private readonly exportTimeoutMs; private readonly onDrop; private queuedCount; private shuttingDown; constructor(config: BrowserResilientExporterConfig); /** * Export spans with resilient error handling. */ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void; shutdown(): Promise; forceFlush(): Promise; } //# sourceMappingURL=resilient-exporter.d.ts.map