import * as express from 'express'; import { ExpressInstrumentationConfig } from './types'; import { InstrumentationBase } from '@opentelemetry/instrumentation'; /** * This symbol is used to mark express layer as being already instrumented * since its possible to use a given layer multiple times (ex: middlewares) */ export declare const kLayerPatched: unique symbol; /** Express instrumentation for OpenTelemetry */ export declare class ExpressInstrumentation extends InstrumentationBase { constructor(config?: ExpressInstrumentationConfig); init(): any[]; /** * Get the patch for Router.route function */ private _getRoutePatch; /** * Get the patch for Router.use function */ private _getRouterUsePatch; /** * Get the patch for Application.use function */ private _getAppUsePatch; /** Patch each express layer to create span and propagate context */ private _applyPatch; }