/** * OpenTelemetry Integration * * Provides optional integration with OpenTelemetry for exporting traces * to OTel-compatible backends (Jaeger, Zipkin, etc.) * * Requires optional peer dependency: @opentelemetry/api */ import type { OTelExporter } from './types.js'; /** * Error thrown when OpenTelemetry SDK is not installed */ export declare class OTelNotInstalledError extends Error { constructor(); } /** * Check if a value is an OTelNotInstalledError */ export declare function isOTelNotInstalledError(error: unknown): error is OTelNotInstalledError; /** * Create an OpenTelemetry exporter that wraps OTel spans * * This exporter converts our internal Span format to OpenTelemetry spans * and uses the configured OTel tracer to export them. * * @param tracerName - Name for the OTel tracer * @param tracerVersion - Version for the OTel tracer * @returns OTelExporter instance * * @example * ```typescript * // First, set up OpenTelemetry in your application: * // import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; * // const provider = new NodeTracerProvider(); * // provider.register(); * * // Then use with TracingManager: * const exporter = await createOTelExporter('my-agent', '1.0.0'); * const tracingManager = new TracingManager({ * serviceName: 'my-agent', * otelExporter: exporter, * }); * ``` */ export declare function createOTelExporter(tracerName?: string, tracerVersion?: string): Promise; /** * Create a console exporter for debugging * * This exporter simply logs spans to the console in a readable format. * Useful for development and debugging. * * @param options - Console exporter options * @returns OTelExporter instance * * @example * ```typescript * const exporter = createConsoleExporter({ prettyPrint: true }); * const tracingManager = new TracingManager({ * serviceName: 'my-agent', * otelExporter: exporter, * }); * ``` */ export declare function createConsoleExporter(options?: { prettyPrint?: boolean; output?: (message: string) => void; }): OTelExporter; /** * Create a batch exporter that buffers spans and exports in batches * * @param innerExporter - The actual exporter to use * @param options - Batch options * @returns OTelExporter instance * * @example * ```typescript * const otelExporter = await createOTelExporter(); * const batchExporter = createBatchExporter(otelExporter, { * maxBatchSize: 100, * flushIntervalMs: 5000, * }); * ``` */ export declare function createBatchExporter(innerExporter: OTelExporter, options?: { maxBatchSize?: number; flushIntervalMs?: number; }): OTelExporter; /** * Create a multi-exporter that sends to multiple backends * * @param exporters - List of exporters to use * @returns OTelExporter instance * * @example * ```typescript * const multiExporter = createMultiExporter([ * createConsoleExporter(), * await createOTelExporter(), * ]); * ``` */ export declare function createMultiExporter(exporters: OTelExporter[]): OTelExporter;