export type OtelSpan = { setAttribute(key: string, value: unknown): void; addEvent(name: string, attrs: Record): void; end(): void; }; export interface OtelSink { startSpan(name: string, attrs: Record): OtelSpan; recordException(span: ReturnType, error: unknown): void; } export declare const noopOtelSink: OtelSink; export declare function bindOtelSpan(value: object, span: OtelSpan): void; export declare function getBoundOtelSpan(value: unknown): OtelSpan | undefined; export declare function activateOtelSpan(span: OtelSpan): () => void; export declare function getActiveOtelSpan(): OtelSpan | undefined; export declare function activateOtelSink(sink: OtelSink | undefined): () => void; export declare function getActiveOtelSink(): OtelSink | undefined; export declare function safeStartSpan(sink: OtelSink | undefined, name: string, attrs: Record): OtelSpan; export declare function safeSetAttribute(span: OtelSpan, key: string, value: unknown): void; export declare function safeAddEvent(span: OtelSpan | undefined, name: string, attrs?: Record): void; export declare function safeRecordException(sink: OtelSink | undefined, span: OtelSpan, error: unknown): void; export declare function safeEndSpan(span: OtelSpan): void;