export declare const UI_RESOURCE_MIME_TYPE = "text/html;profile=mcp-app"; /** * Versioned resource URI: `ui://openephemeris/?v=`. * * ChatGPT caches a `ui://` resource per connector and never re-reads it for a * URI it has seen — a deploy alone does not refresh the widget. Stamping the * package version into the URI makes every release a new URI, so hosts fetch * the new bundle on their own. Caveat: a widget change must ship with a * version bump to bust the cache (same version ⇒ same URI). * * The SAME string is used in the tool `_meta` (ui.resourceUri and its aliases), * in resources/list and in resources/read, on both transports. */ export declare function uiResourceUri(slug: string): string; /** The URI without its `?v=` query — what resources/read matches on. */ export declare function uiResourceBase(uri: string): string; /** * CSP the bundles actually need: none. Every bundle is a single self-contained * HTML file (JS/CSS inlined, images and icons as data: URIs), and the apps talk * to the host over postMessage only — no fetch, no remote script, style, image * or font. Empty lists are the spec's secure default; declaring them explicitly * documents that this is deliberate, not forgotten. */ export declare const UI_RESOURCE_CSP: { connectDomains: string[]; resourceDomains: string[]; }; /** * `_meta` for a `ui://` resource (resources/list entry and resources/read * content item). Two wire forms, same values: * * ui.* — MCP Apps (SEP-1865) McpUiResourceMeta. * openai/* — ChatGPT's aliases for the same fields. * * prefersBorder: true — the host draws the card border and background; the apps * therefore paint no card, border or glow of their own (shared/tokens.css). * * ui.domain / openai/widgetDomain are deliberately NOT set: their format is * host-specific (a hash subdomain on Claude, a derived *.oaiusercontent.com on * ChatGPT) and a wrong value can stop the widget rendering. Omitted = the * host's default sandbox origin, which is what every live render uses today. */ export declare function uiResourceMeta(widgetDescription: string): Record;