/** * @license * Copyright 2025 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import type { ISpan, ITelemetryProvider, SpanOptions } from "./ITelemetryProvider"; /** * Minimal subset of the OpenTelemetry `Tracer` interface that we depend on. * This avoids a hard dependency on `@opentelemetry/api` while still being * fully compatible with `trace.getTracer()`. */ export interface OTelTracer { startSpan(name: string, options?: any, context?: any): OTelSpan; } /** * Minimal subset of the OpenTelemetry `Span` interface. */ export interface OTelSpan { setAttribute(key: string, value: string | number | boolean): any; addEvent(name: string, attributes?: Record): any; setStatus(status: { code: number; message?: string; }): any; end(): void; } /** * Telemetry provider backed by a real OpenTelemetry tracer. * * @example * ```ts * import { trace } from "@opentelemetry/api"; * import { OTelTelemetryProvider, setTelemetryProvider } from "@workglow/util"; * * const tracer = trace.getTracer("my-app", "1.0.0"); * setTelemetryProvider(new OTelTelemetryProvider(tracer)); * ``` */ export declare class OTelTelemetryProvider implements ITelemetryProvider { private readonly tracer; readonly isEnabled = true; constructor(tracer: OTelTracer); startSpan(name: string, options?: SpanOptions): ISpan; } //# sourceMappingURL=OTelTelemetryProvider.d.ts.map