import Span from './span';
/**
* Manages span activation and implicit in-process propogation.
*/
export interface SpanManager {
/**
* Gets the currently active span.
*
* @return {Span} the active span.
*/
active(): Span | null;
/**
* Executes the function, setting the provided span as the active one.
*
* @param {Span|null} span span to activate.
* @param {function()} f function to execute.
*/
activate(span: Span | null, f: () => A): A;
}
/**
* Activates spans over the synchronous call graph.
*/
export declare class SyncSpanManager implements SpanManager {
private _span;
active(): Span | null;
activate(span: Span | null, f: () => A): A;
}