import * as opentracing from 'opentracing';
import { Context } from './Context';
import { Span } from './Span';
export declare class Tracer extends opentracing.Tracer {
    startSpan: Function;
    opentracing: any;
    _spans: Span[];
    internalEvents: any[];
    recordCallback: any;
    accessToken: string;
    componentName: string;
    collectorHostname: string;
    beginMs: number;
    endMs: number;
    inject: any;
    extract: any;
    _startSpan(name: any, fields: any): any;
    _inject(spanContext: Context, format: any, carrier: any): void;
    private _injectToTextMap(context, carrier);
    _extract(format: string, carrier: any): any | undefined;
    /**
     * Create a new Context from a carrier JSON object
     */
    private _extractTextMap(carrier);
    constructor(options: any);
    isSampled(): boolean;
    /**
     * Discard any buffered data.
     */
    clear(): void;
    /**
     * Generate a uuid.v4
     *
     * Based on this gist https://gist.github.com/jed/982883
     *
     */
    generateUUID(): string;
    /**
     * Create a new span from a carrier
     * by default uses the text_map
     *
     */
    join(operationName: string, carrier: any, format?: string): Span;
    private recordInternalEvent(msg, payload?);
    /**
     * Return the buffered data in a format convenient for making unit test
     * assertions.
     */
    record(span: Span): void;
}
