import { Attributes, Span, Tracer } from '@opentelemetry/api';
import type { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
export declare const OtelState: {
    tracer: Tracer | undefined;
    prometheusExporter: PrometheusExporter | undefined;
    readonly installed: boolean;
};
export declare function isTracingInstalled(): boolean;
export declare function getTracer(): Tracer | undefined;
export declare function getActiveSpan(): Span | undefined;
export declare function getTraceContext(): import("@opentelemetry/api").SpanContext | undefined;
export declare function disableActiveTrace(): void;
type SpanInfo = {
    traceId: string;
    spanId: string;
    traceFlags?: number;
} | {
    traceparent: string;
} | undefined;
export declare function withRemoteSpan<T>(name: string, spanInfo: SpanInfo, attrs: Attributes | undefined, fn: () => Promise<T>): Promise<T>;
export declare function withSpan<T>(name: string, fn: () => Promise<T>): Promise<T>;
export declare function withSpan<T>(name: string, attrs: Attributes | undefined, fn: () => Promise<T>): Promise<T>;
export declare function withRootSpan<T>(name: string, fn: () => Promise<T>): Promise<T>;
export declare function withRootSpan<T>(name: string, attrs: Attributes | undefined, fn: () => Promise<T>): Promise<T>;
export declare function setSpanAttributes(attributes: Attributes): void;
export {};
//# sourceMappingURL=helpers.d.ts.map