/** * @since 1.0.0 */ import type * as Otel from "@opentelemetry/api"; import type { NoSuchElementException } from "effect/Cause"; import type { Tag } from "effect/Context"; import type { Effect } from "effect/Effect"; import type { Layer } from "effect/Layer"; import type { ExternalSpan, ParentSpan, Tracer as EffectTracer } from "effect/Tracer"; import type { Resource } from "./Resource.js"; /** * @since 1.0.0 * @category constructors */ export declare const make: Effect; /** * @since 1.0.0 * @category constructors */ export declare const makeExternalSpan: (options: { readonly traceId: string; readonly spanId: string; readonly traceFlags?: number | undefined; readonly traceState?: string | Otel.TraceState | undefined; }) => ExternalSpan; /** * Get the current OpenTelemetry span. * * Works with both the official OpenTelemetry API (via `Tracer.layer`, `NodeSdk.layer`, etc.) * and the lightweight OTLP module (`OtlpTracer.layer`). * * When using OTLP, the returned span is a wrapper that conforms to the * OpenTelemetry `Span` interface. * * @since 1.0.0 * @category accessors */ export declare const currentOtelSpan: Effect; /** * @since 1.0.0 * @category layers */ export declare const layerWithoutOtelTracer: Layer; /** * @since 1.0.0 * @category layers */ export declare const layer: Layer; /** * @since 1.0.0 * @category layers */ export declare const layerGlobal: Layer; /** * @since 1.0.0 * @category layers */ export declare const layerTracer: Layer; /** * @since 1.0.0 * @category layers */ export declare const layerGlobalTracer: Layer; /** * @since 1.0.0 * @category tags */ export interface OtelTracerProvider { readonly _: unique symbol; } /** * @since 1.0.0 * @category tags */ export declare const OtelTracerProvider: Tag; /** * @since 1.0.0 * @category tags */ export interface OtelTracer { readonly _: unique symbol; } /** * @since 1.0.0 * @category tags */ export declare const OtelTracer: Tag; /** * @since 1.0.0 * @category tags */ export interface OtelTraceFlags { readonly _: unique symbol; } /** * @since 1.0.0 * @category tags */ export declare const OtelTraceFlags: Tag; /** * @since 1.0.0 * @category tags */ export interface OtelTraceState { readonly _: unique symbol; } /** * @since 1.0.0 * @category tags */ export declare const OtelTraceState: Tag; /** * Set the effect's parent span from the given opentelemetry `SpanContext`. * * This is handy when you set up OpenTelemetry outside of Effect and want to * attach to a parent span. * * @since 1.0.0 * @category propagation */ export declare const withSpanContext: { /** * Set the effect's parent span from the given opentelemetry `SpanContext`. * * This is handy when you set up OpenTelemetry outside of Effect and want to * attach to a parent span. * * @since 1.0.0 * @category propagation */ (spanContext: Otel.SpanContext): (effect: Effect) => Effect>; /** * Set the effect's parent span from the given opentelemetry `SpanContext`. * * This is handy when you set up OpenTelemetry outside of Effect and want to * attach to a parent span. * * @since 1.0.0 * @category propagation */ (effect: Effect, spanContext: Otel.SpanContext): Effect>; }; //# sourceMappingURL=Tracer.d.ts.map