import type { CallToolResult, ClientCapabilities, Implementation } from "@modelcontextprotocol/sdk/types.js"; /** * Takes a tool's MCP Apps parts away for a client that renders no MCP Apps: its * app resource, and either the whole tool, if it only serves its app, or the * data tool's show_ui, its app _meta and the _meta in its result. */ export type WithoutApps = () => void; export declare const CLIENT_APPS: readonly ["apps", "text-only", "unknown"]; /** * Whether a client gets the MCP Apps parts: "apps" if it advertises the * extension for app HTML, "text-only" if it is a client known to render no * apps (see TEXT_ONLY_CLIENTS), otherwise "unknown", and such a client keeps * every tool. */ export type ClientApps = (typeof CLIENT_APPS)[number]; /** From a client's initialize. */ export declare function classifyClient(capabilities: ClientCapabilities, client: Implementation | undefined): ClientApps; /** What to log of a client's clientInfo, which may also carry icons as data: URIs. */ export declare function clientForLog(client: Implementation | undefined): { name: string; version: string; } | undefined; /** * The client's own choice, from ?apps= on the MCP URL or MCP_APPS: "true" or * "false" decides over the client's initialize; anything else leaves it to it. */ export declare function appsOverride(value: unknown): ClientApps | undefined; /** * A tool result without the parts only an app reads, for a client that runs no app: its * `_meta`, and the `show_ui`/`tool` fields a host without `_meta` would fall back to on the text. */ export declare function withoutAppMeta({ _meta, ...result }: CallToolResult): CallToolResult; //# sourceMappingURL=clientApps.d.ts.map