import { type IExecuteFunctions, type ILoadOptionsFunctions, type INodeExecutionData, type INodePropertyOptions, type McpOAuth2CredentialType, type McpRegistryConnection, type PrepareMcpRegistryConnectionInput, type PrepareMcpRegistryConnectionResult, type ISupplyDataFunctions, type SupplyData } from 'n8n-workflow';
import type { McpAuthenticationOption, McpServerTransport } from './types';
import type { McpToolIncludeMode } from '../McpClientTool/types';
export type McpConnectionConfig = {
    authentication: McpAuthenticationOption;
    transport: McpServerTransport;
    endpointUrl: string;
    registryCredential?: {
        connection: McpRegistryConnection;
        credentialType: McpOAuth2CredentialType;
        prepareConnection(input: PrepareMcpRegistryConnectionInput): PrepareMcpRegistryConnectionResult;
    };
    timeout: number;
};
export type ResolvedMcpConfig = McpConnectionConfig & {
    toolFilter: {
        mode: McpToolIncludeMode;
        includeTools: string[];
        excludeTools: string[];
    };
};
export declare function buildMcpToolkit(ctx: ISupplyDataFunctions, itemIndex: number, config: ResolvedMcpConfig): Promise<SupplyData>;
export declare function executeMcpTool(ctx: IExecuteFunctions, resolveConfig: (itemIndex: number) => ResolvedMcpConfig | Promise<ResolvedMcpConfig>, options?: {
    enableSessionCache?: boolean;
}): Promise<INodeExecutionData[][]>;
export declare function loadMcpToolOptions(ctx: ILoadOptionsFunctions, config: McpConnectionConfig): Promise<INodePropertyOptions[]>;
