import { type McpToolResult } from "../../_shared/baseToolAdapter.js";
export type McpHealthCheckPermission = "mcp:connection:read" | "mcp:monitor:read";
export type McpHealthCheckContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    allowedServerIds?: readonly string[];
    grantedPermissions?: readonly McpHealthCheckPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type McpHealthCheckTarget = {
    serverId: string;
    connectionId?: string;
    timeoutMs?: number;
    includeCapabilities?: boolean;
    includeLatencyProbe?: boolean;
};
export type McpHealthCheckRequest = {
    target?: Partial<McpHealthCheckTarget> | null;
    context?: McpHealthCheckContext;
};
export type McpHealthCheckProbeEnvelope = {
    connection: string;
    latencyMs?: number;
    capabilities: readonly string[];
    status: "healthy" | "degraded" | "unhealthy" | "unknown";
};
export type McpHealthCheckProviderResult = {
    status: "healthy" | "degraded" | "unhealthy" | "unknown";
    connection?: string;
    latencyMs?: number;
    capabilities?: readonly string[];
    providerMetadata?: Readonly<Record<string, unknown>>;
    raw?: unknown;
};
export type McpHealthCheckProvider = (request: McpHealthCheckTarget, context: Readonly<Record<string, unknown>>) => Promise<McpHealthCheckProviderResult> | McpHealthCheckProviderResult;
export type McpHealthCheckOutput = {
    kind: "agentCore.basicTool.mcp.healthCheck";
    target: McpHealthCheckTarget;
    dryRun: boolean;
    executionBlocked: boolean;
    providerCalled: boolean;
    permissionsRequired: readonly McpHealthCheckPermission[];
    unsafeSideEffects: false;
    probeEnvelope: McpHealthCheckProbeEnvelope;
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type McpHealthCheckErrorCode = "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 McpHealthCheckResult = McpToolResult<McpHealthCheckOutput, McpHealthCheckErrorCode>;
export declare const mcpHealthCheckDescriptor: {
    readonly toolId: "mcp.healthCheck";
    readonly capability: "health-check";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.mcpBase.monitoring";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["mcp:connection:read", "mcp:monitor:read"];
    readonly defaultTimeoutMs: 5000;
    readonly maxTimeoutMs: 60000;
};
export declare function planMcpHealthCheck(request?: unknown): McpHealthCheckResult;
export declare function executeMcpHealthCheck(request?: unknown, provider?: McpHealthCheckProvider): Promise<McpHealthCheckResult>;
