export interface SpanTags {
    [key: string]: string | number | boolean | undefined;
}
export interface CompletedSpan {
    traceId: string;
    spanId: string;
    parentSpanId?: string;
    operation: string;
    startMs: number;
    durationMs: number;
    status: 'ok' | 'error';
    errorType?: string;
    tags: SpanTags;
}
declare class Tracer {
    private storage;
    private enabled;
    /** Enable or disable tracing. When disabled, span/spanSync are zero-overhead pass-throughs. */
    setEnabled(enabled: boolean): void;
    isEnabled(): boolean;
    private shortId;
    currentTraceId(): string | undefined;
    span<T>(operation: string, tags: SpanTags, fn: () => Promise<T>): Promise<T>;
    spanSync<T>(operation: string, tags: SpanTags, fn: () => T): T;
    private elapsed;
    private emit;
}
export declare const tracer: Tracer;
export {};
//# sourceMappingURL=tracer.d.ts.map