import { Attributes, Context, Span } from '@opentelemetry/api';
import { Tracer as InternalTracer } from '../empty/diagnostics-tracer-empty';
import { WidgetContext } from '../../editor/widget-framework/widget-context';
export declare class Tracer extends InternalTracer {
    static startTrace<F>(key: string, fn: (span: Span) => F): F;
    static startSpan(key: string, createContext?: boolean, currentContext?: Context): {
        span: Span;
        ctx?: Context;
    };
    static traceWidget(widgetContext: WidgetContext<any>, createContext?: boolean): {
        span: Span;
        ctx?: Context;
    };
    static endSpan(span?: Span): null;
    static withContext<T>(fn: () => T, ctx?: Context): T;
    static logEvent(name: string, attributes?: Attributes, span?: Span): void;
}
