import type { BaseToolExecutorPort } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { type McpRegisterToolDependencies, type McpRegisterToolPracticeProviderName, type McpRegisterToolProviderPractice } from "./dependencies.js";
import { planMcpToolRegistration, type RegisterMcpToolOutput, type RegisterMcpToolProvider, type RegisterMcpToolRequest, type RegisterMcpToolResult } from "./core.js";
export * from "./core.js";
export type McpRegisterToolBestPracticeRequest = RegisterMcpToolRequest & {
    executor?: BaseToolExecutorPort;
    provider?: RegisterMcpToolProvider;
    preferredProvider?: McpRegisterToolPracticeProviderName;
};
export type McpRegisterToolHandlerInput = Omit<McpRegisterToolBestPracticeRequest, "executor">;
export type McpRegisterToolPracticeSelection = {
    providerName: McpRegisterToolPracticeProviderName;
    practice: McpRegisterToolProviderPractice;
    provider?: RegisterMcpToolProvider;
};
export declare const mcpRegisterToolProviderPractices: readonly [McpRegisterToolProviderPractice, McpRegisterToolProviderPractice, McpRegisterToolProviderPractice];
export declare const mcpRegisterToolBestPracticeDescriptor: {
    readonly toolId: "mcp.registerTool";
    readonly bestPractice: "storage-owned-mcp-register-tool-with-runtime-owned-client";
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: readonly import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDependencyDeclaration[];
};
export declare function selectMcpRegisterToolPractice(dependencies?: McpRegisterToolDependencies & {
    preferredProvider?: McpRegisterToolPracticeProviderName;
}): McpRegisterToolPracticeSelection;
export declare function executeMcpToolRegistration(request?: McpRegisterToolBestPracticeRequest | unknown, providerOverride?: RegisterMcpToolProvider): Promise<RegisterMcpToolResult>;
export declare const mcpRegisterToolBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<McpRegisterToolHandlerInput, RegisterMcpToolOutput>;
export declare const mcpRegisterToolHandler: BaseToolHandler<McpRegisterToolHandlerInput, RegisterMcpToolOutput>;
export type { RegisterMcpToolResult };
export { planMcpToolRegistration };
