import { IModulePatcher } from "./patchRequire"; export { PatchFunction, IModulePatcher, makePatchingRequire } from "./patchRequire"; export interface ISpanContext { traceId: string; spanId: string; traceFlags?: string; tracestate?: string; } declare type ScopeManager = any; export interface IStandardEvent { timestamp: number; data: T; } export declare type ISubscriber = (event: IStandardEvent) => void; export declare type IFilter = (publishing: boolean) => boolean; export interface IChannel { shouldPublish(name: string): boolean; publish(name: string, event: T): void; subscribe(name: string, listener: ISubscriber, filter?: IFilter): void; unsubscribe(name: string, listener: ISubscriber, filter?: IFilter): void; bindToContext(cb: T): T; addContextPreservation(preserver: (cb: T) => T): void; registerMonkeyPatch(packageName: string, patcher: IModulePatcher): void; spanContextPropagator: ScopeManager; } export declare const channel: IChannel;