import type { Instrumentation, InstrumentationConfig, InstrumentationModuleDefinition } from '@opentelemetry/instrumentation';
import type { SpanSessionManager } from '../../api-sessions/index.js';
import type { LogManager } from '../../api-logs/index.js';
import type { PerformanceManager } from '../../utils/index.js';
import type { EmbraceInstrumentationBaseArgs } from './types.js';
import { InstrumentationAbstract } from '../InstrumentationAbstract/index.js';
export declare abstract class EmbraceInstrumentationBase<ConfigType extends InstrumentationConfig = InstrumentationConfig> extends InstrumentationAbstract<ConfigType> implements Instrumentation<ConfigType> {
    private readonly _sessionManager;
    private readonly _logManager;
    private readonly _perf;
    protected constructor({ instrumentationName, instrumentationVersion, config, diag, perf, }: EmbraceInstrumentationBaseArgs<ConfigType>);
    protected get sessionManager(): SpanSessionManager;
    protected get logManager(): LogManager;
    protected get perf(): PerformanceManager;
    protected init(): InstrumentationModuleDefinition | InstrumentationModuleDefinition[] | void;
}
//# sourceMappingURL=EmbraceInstrumentationBase.d.ts.map