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 McpAuthenticateDependencies, type McpAuthenticatePracticeProviderName, type McpAuthenticateProviderPractice } from "./dependencies.js";
import { mcpAuthenticateDescriptor, planMcpAuthenticate, type McpAuthenticateOutput, type McpAuthenticateProvider, type McpAuthenticateRequest, type McpAuthenticateResult } from "./core.js";
export * from "./core.js";
export type McpAuthenticateBestPracticeRequest = McpAuthenticateRequest & {
    executor?: BaseToolExecutorPort;
    provider?: McpAuthenticateProvider;
    preferredProvider?: McpAuthenticatePracticeProviderName;
};
export type McpAuthenticateHandlerInput = Omit<McpAuthenticateBestPracticeRequest, "executor">;
export type McpAuthenticatePracticeSelection = {
    providerName: McpAuthenticatePracticeProviderName;
    practice: McpAuthenticateProviderPractice;
    provider?: McpAuthenticateProvider;
};
export declare const mcpAuthenticateProviderPractices: readonly [McpAuthenticateProviderPractice, McpAuthenticateProviderPractice, McpAuthenticateProviderPractice];
export declare const mcpAuthenticateBestPracticeDescriptor: {
    readonly toolId: "mcp.authenticate";
    readonly bestPractice: "storage-owned-mcp-authenticate-with-runtime-owned-auth-client";
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: readonly import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDependencyDeclaration[];
};
export declare function selectMcpAuthenticatePractice(dependencies?: McpAuthenticateDependencies & {
    preferredProvider?: McpAuthenticatePracticeProviderName;
}): McpAuthenticatePracticeSelection;
export declare function executeMcpAuthenticate(request?: McpAuthenticateBestPracticeRequest | unknown): Promise<McpAuthenticateResult>;
export declare const mcpAuthenticateBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<McpAuthenticateHandlerInput, McpAuthenticateOutput>;
export declare const mcpAuthenticateHandler: BaseToolHandler<McpAuthenticateHandlerInput, McpAuthenticateOutput>;
export type { McpAuthenticateResult };
export { mcpAuthenticateDescriptor, planMcpAuthenticate };
