import { SpanOptions } from '@opentelemetry/api'; import type { Instrumentation } from '@opentelemetry/instrumentation'; import { BackendProvider, TraceOptions } from '../types'; export interface TraceData { id: string; traceId: string; parentId: string; name: string; timestamp: bigint; duration: bigint; attributes: Record; } export declare const isTraceable: () => boolean; export declare const setEnableTracingForRequest: (fn: () => Promise) => Promise; export declare const setDisableTracingForRequest: (fn: () => Promise) => Promise; export declare function TraceMethod(): (_target: any, _fieldName: string, descriptor: PropertyDescriptor) => void; type WithSpan = [...Args, TraceOptions | undefined]; export declare const trace: (fn: (...params: WithSpan) => Promise, spanOptions?: SpanOptions, spanName?: string) => (...functionArgs: Args) => Promise; export declare const traceSync: (fn: (...params: WithSpan) => T, spanOptions?: SpanOptions, spanName?: string) => (...functionArgs: Args) => T; export declare const startTracing: ({ instrumentations, traceProvider, }: { instrumentations: (Instrumentation | Instrumentation[])[]; traceProvider?: BackendProvider; }) => void; export {};