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 McpCallDependencies, type McpCallPracticeProviderName, type McpCallProviderPractice } from "./dependencies.js";
import { mcpCallDescriptor, planMcpCall, type McpCallOutput, type McpCallProvider, type McpCallRequest, type McpCallResult } from "./core.js";
export * from "./core.js";
export type McpCallBestPracticeRequest = McpCallRequest & {
    executor?: BaseToolExecutorPort;
    provider?: McpCallProvider;
    preferredProvider?: McpCallPracticeProviderName;
};
export type McpCallHandlerInput = Omit<McpCallBestPracticeRequest, "executor">;
export type McpCallPracticeSelection = {
    providerName: McpCallPracticeProviderName;
    practice: McpCallProviderPractice;
    provider?: McpCallProvider;
};
export declare const mcpCallProviderPractices: readonly [McpCallProviderPractice, McpCallProviderPractice, McpCallProviderPractice];
export declare const mcpCallBestPracticeDescriptor: {
    readonly toolId: "mcp.call";
    readonly bestPractice: "storage-owned-mcp-call-with-runtime-owned-client";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: readonly import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDependencyDeclaration[];
};
export declare function selectMcpCallPractice(dependencies?: McpCallDependencies & {
    preferredProvider?: McpCallPracticeProviderName;
}): McpCallPracticeSelection;
export declare function executeMcpCall(request?: McpCallBestPracticeRequest | unknown): Promise<McpCallResult>;
export declare const mcpCallBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<McpCallHandlerInput, McpCallOutput>;
export declare const mcpCallHandler: BaseToolHandler<McpCallHandlerInput, McpCallOutput>;
export type { McpCallResult };
export { mcpCallDescriptor, planMcpCall };
