import { type McpToolResult } from "../../_shared/baseToolAdapter.js";
export type McpListToolsPermission = "mcp:tool:read";
export type McpToolDefinition = {
    name: string;
    title?: string;
    description?: string;
    inputSchema?: unknown;
    disabled?: boolean;
    namespace?: string;
    raw?: unknown;
};
export type ListMcpToolsContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    allowedServerIds?: readonly string[];
    grantedPermissions?: readonly McpListToolsPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ListMcpToolsTarget = {
    serverId: string;
    namespace?: string;
    includeDisabled?: boolean;
    cursor?: string;
    limit?: number;
};
export type ListMcpToolsRequest = {
    target?: Partial<ListMcpToolsTarget> | null;
    context?: ListMcpToolsContext;
};
export type ListMcpToolsProviderRequest = ListMcpToolsTarget;
export type ListMcpToolsProviderResult = {
    tools: readonly McpToolDefinition[];
    nextCursor?: string;
    providerMetadata?: Readonly<Record<string, unknown>>;
    raw?: unknown;
};
export type ListMcpToolsProvider = (request: ListMcpToolsProviderRequest, context: Readonly<Record<string, unknown>>) => Promise<ListMcpToolsProviderResult> | ListMcpToolsProviderResult;
export type ListMcpToolsOutput = {
    kind: "agentCore.basicTool.mcp.listTools";
    target: ListMcpToolsTarget;
    toolsPreview: readonly McpToolDefinition[];
    nextCursor?: string;
    providerCalled: boolean;
    providerMetadata?: Readonly<Record<string, unknown>>;
    dryRun: boolean;
    executionBlocked: boolean;
    permissionsRequired: readonly McpListToolsPermission[];
    unsafeSideEffects: false;
};
export type ListMcpToolsErrorCode = "INVALID_REQUEST" | "INVALID_CONTEXT" | "MISSING_SERVER_ID" | "INVALID_SERVER_ID" | "INVALID_LIMIT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type ListMcpToolsResult = McpToolResult<ListMcpToolsOutput, ListMcpToolsErrorCode>;
export declare const mcpListToolsDescriptor: {
    readonly toolId: "mcp.listTools";
    readonly capability: "list-mcp-tools";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.mcpBase.tool";
    readonly permissionsRequired: readonly ["mcp:tool:read"];
    readonly defaultDryRun: true;
    readonly unsafeSideEffects: false;
    readonly tapOwnsApproval: true;
    readonly runtimeOwnsMcpClient: true;
    readonly defaultLimit: 100;
    readonly maxLimit: 500;
};
export declare function planMcpToolsList(request?: unknown): ListMcpToolsResult;
export declare function executeMcpToolsList(request?: unknown, provider?: ListMcpToolsProvider): Promise<ListMcpToolsResult>;
