import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; /** * The confirmation step before a decision is written, on stdio. * * Same contract as the remote gate: `confirmed: true` in the arguments means * the agent already asked the user; otherwise the client is asked through an * elicitation when it supports one, and told to come back with * `confirmed: true` when it does not. The Convex function never sees the * difference. */ type Confirmation = { /** What is at stake, as the dialog names it. */ what: string; /** The one line the user reads, built from the arguments. */ summary: (args: Record) => string; /** The question asked. A removal never asks "Record it". */ prompt: string; }; export declare const CONFIRMED_TOOLS: Record; export declare const CONFIRMATION_HINT: string; /** `null` when the call may proceed, a tool result to return otherwise. */ export declare function confirmWithUser(server: Pick, toolName: string, args: Record): Promise; export {};