import { type ElicitRequestFormParams, type InputRequiredResult } from '@modelcontextprotocol/server'; /** Capabilities source: the server's negotiated view (per-request * backfilled on the 2026-07-28 era, initialize-scoped on 2025-era * connections), so legacy-era clients — today's hosts — can also declare * elicitation/tasks support. */ export type CapabilityProvider = () => Record | undefined; /** Does this request's client declare the `elicitation` capability? */ export declare function clientHasElicitation(ctx: unknown, provider?: CapabilityProvider): boolean; /** Does this request's client declare an extension by its full name? */ export declare function clientHasExtension(ctx: unknown, name: string, provider?: CapabilityProvider): boolean; export interface ConsentGateOptions { /** The inputRequests key — echoed back by the client on retry. */ key: string; /** Human-readable explanation shown with the elicitation. */ message: string; /** Flat JSON Schema of primitives describing the expected response. */ schema: ElicitRequestFormParams['requestedSchema']; } /** * Read the user's decision for this gate. Three outcomes: * - `{ gate }` — the request carried no `inputResponses` yet: ask for the * decision (input_required). * - `{ content }` — a retried request carrying an accepted response. * - `{ declined: true }` — a retried request whose response was a * decline/cancel (or accepted without the required fields): the caller * must surface the refusal and store nothing. */ export declare function consentGate>(ctx: unknown, options: ConsentGateOptions): { gate: InputRequiredResult; } | { content: T; } | { declined: true; }; /** Message shown for the standard boolean confirmation gates. */ export declare const confirmSchema: (title: string) => ElicitRequestFormParams["requestedSchema"]; //# sourceMappingURL=consent.d.ts.map