import type { StructuredTool } from '@langchain/core/tools';
import type { AiEvent, IDataObject, IExecuteFunctions, ISupplyDataFunctions } from 'n8n-workflow';
import { NodeConnectionType } from 'n8n-workflow';
export declare function logAiEvent(executeFunctions: IExecuteFunctions | ISupplyDataFunctions, event: AiEvent, data?: IDataObject): void;
export declare function callMethodAsync<T>(this: T, parameters: {
    executeFunctions: IExecuteFunctions | ISupplyDataFunctions;
    connectionType: NodeConnectionType;
    currentNodeRunIndex: number;
    method: (...args: any[]) => Promise<unknown>;
    arguments: unknown[];
}): Promise<unknown>;
export declare function callMethodSync<T>(this: T, parameters: {
    executeFunctions: IExecuteFunctions;
    connectionType: NodeConnectionType;
    currentNodeRunIndex: number;
    method: (...args: any[]) => T;
    arguments: unknown[];
}): unknown;
export declare function logWrapper<T extends StructuredTool>(originalInstance: T, executeFunctions: IExecuteFunctions | ISupplyDataFunctions): T;
