import { BasePlugin } from '@opentelemetry/core'; import * as express from 'express'; import { ExpressPluginConfig } from './types'; /** * 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 plugin for OpenTelemetry */ export declare class ExpressPlugin extends BasePlugin { readonly moduleName: string; static readonly component = "express"; readonly supportedVersions: string[]; protected _config: ExpressPluginConfig; protected _logger: import("@opentelemetry/api").DiagAPI; constructor(moduleName: string); /** * Patches Express operations. */ protected patch(): any; /** Unpatches all Express patched functions. */ unpatch(): void; /** * Get the patch for Router.route function * @param original */ private _getRoutePatch; /** * Get the patch for Router.use function * @param original */ private _getRouterUsePatch; /** * Get the patch for Application.use function * @param original */ private _getAppUsePatch; /** Patch each express layer to create span and propagate context */ private _applyPatch; } export declare const plugin: ExpressPlugin;