import { type McpToolResult } from "../../_shared/baseToolAdapter.js";
export type McpPingPermission = "mcp:ping";
export type McpPingContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    allowedServerIds?: readonly string[];
    grantedPermissions?: readonly McpPingPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type McpPingTarget = {
    serverId: string;
    connectionId?: string;
    timeoutMs: number;
};
export type McpPingRequest = {
    target?: Partial<McpPingTarget> | null;
    context?: McpPingContext;
};
export type McpPingEnvelope = {
    serverId: string;
    connectionId?: string;
    probeState: "planned" | "probed";
    timeoutMs: number;
    healthy: boolean | "unknown";
    status?: string;
    latencyMs?: number;
};
export type McpPingProviderResult = {
    healthy: boolean | "unknown";
    status?: string;
    latencyMs?: number;
    providerMetadata?: Readonly<Record<string, unknown>>;
    raw?: unknown;
};
export type McpPingProvider = (request: McpPingTarget, context: Readonly<Record<string, unknown>>) => Promise<McpPingProviderResult> | McpPingProviderResult;
export type McpPingOutput = {
    kind: "agentCore.basicTool.mcp.ping";
    target: McpPingTarget;
    operationPreview: McpPingEnvelope;
    dryRun: boolean;
    executionBlocked: boolean;
    providerCalled: boolean;
    permissionsRequired: readonly McpPingPermission[];
    unsafeSideEffects: false;
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type McpPingErrorCode = "INVALID_REQUEST" | "INVALID_CONTEXT" | "MISSING_SERVER_ID" | "INVALID_SERVER_ID" | "INVALID_TIMEOUT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type McpPingResult = McpToolResult<McpPingOutput, McpPingErrorCode>;
export declare const mcpPingDescriptor: {
    readonly toolId: "mcp.ping";
    readonly capability: "ping-mcp-connection";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.mcpBase.connection";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["mcp:ping"];
    readonly defaultTimeoutMs: 5000;
    readonly maxTimeoutMs: 60000;
};
export declare function planMcpPing(request?: unknown): McpPingResult;
export declare function executeMcpPing(request?: unknown, provider?: McpPingProvider): Promise<McpPingResult>;
