import { Tracer, TracerProvider } from '@opentelemetry/api'; import { Plugin, PluginConfig, PluginInternalFiles } from '../trace/Plugin'; /** This class represent the base to patch plugin. */ export declare abstract class BaseAbstractPlugin implements Plugin { protected readonly _tracerName: string; protected readonly _tracerVersion?: string | undefined; abstract readonly moduleName: string; supportedVersions?: string[]; readonly version?: string; protected readonly _basedir?: string; protected _config: PluginConfig; protected _internalFilesExports: { [module: string]: unknown; }; protected readonly _internalFilesList?: PluginInternalFiles; protected _moduleExports: T; protected _tracer: Tracer; constructor(_tracerName: string, _tracerVersion?: string | undefined); disable(): void; abstract enable(moduleExports: T, tracerProvider: TracerProvider, config?: PluginConfig): T; protected abstract patch(): T; protected abstract unpatch(): void; }