import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
import { LangChainInstrumentationConfig } from './types';
export declare const INSTRUMENTATION_NAME = "@aws/aws-distro-opentelemetry-instrumentation-langchain";
export declare const INSTRUMENTATION_SHORT_NAME = "aws_langchain";
export declare class LangChainInstrumentation extends InstrumentationBase<LangChainInstrumentationConfig> {
    _patchedCallbackManagers: Set<any>;
    _patchedChatModelsProtos: Set<any>;
    _patchedToolsProtos: Set<any>;
    _wrappedChatProtos: Set<any>;
    _wrappedToolProtos: Set<any>;
    _handler: any;
    constructor(config?: LangChainInstrumentationConfig);
    setConfig(config?: LangChainInstrumentationConfig): void;
    enable(): void;
    protected init(): InstrumentationNodeModuleDefinition[];
    _patchCallbackManager(CallbackManager: any): void;
    _unpatchCallbackManager(CallbackManager: any): void;
    _patchChatModelsModule(modExports: any): any;
    _unpatchChatModelsModule(modExports: any): any;
    _patchToolsModule(modExports: any): any;
    _unpatchToolsModule(modExports: any): any;
    private _propagateContextOnChatProto;
    private _propagateContextOnToolProto;
    private static _injectHandler;
}
//# sourceMappingURL=instrumentation.d.ts.map