/// import * as _ from 'lodash'; import Span from './Span'; import { TracerConfiguration } from './interfaces'; export declare const defaultConfig: { minimumDurationMs: number; sampleRate: number; globalMetadata: {}; globalTags: {}; }; export default class Tracer { private config; private spanStack; private reporter; constructor(config: TracerConfiguration); start(resource: string, name: string, service?: string): Span; startTopLevelSpan(resource: string, name: string, service?: string): Span | { end: () => typeof Span; setMeta: () => typeof Span; setTags: () => typeof Span; newChild: () => typeof Span; setError: (error?: Error) => typeof Span; removeShortSpans: () => typeof Span; setTraceId: () => typeof Span; readonly hasEnded: boolean; }; startNestedSpan(resource: string, name: string, service?: string): Span | { end: () => typeof Span; setMeta: () => typeof Span; setTags: () => typeof Span; newChild: () => typeof Span; setError: (error?: Error) => typeof Span; removeShortSpans: () => typeof Span; setTraceId: () => typeof Span; readonly hasEnded: boolean; }; getNestedSpan(): Span; startSpan(parent: Span, resource: string, name: string, service?: string): Span | { end: () => typeof Span; setMeta: () => typeof Span; setTags: () => typeof Span; newChild: () => typeof Span; setError: (error?: Error) => typeof Span; removeShortSpans: () => typeof Span; setTraceId: () => typeof Span; readonly hasEnded: boolean; }; isInTrace(resource: string, name: string): boolean; get(): Span; end(): Span; endIf(resource: string, name: string): Span; recordTrace(trace: Span): void; sanitizeTags(tags: any): _.Dictionary; getGlobalMetadata(): any; getGlobalTags(): any; getTraceId(): {}; }