/** * Public MCP endpoint in MCP registry (server.json, smithery.yaml, llms.txt). * Claude connector directory validates ui.domain against THIS URL's hash — * not the raw Vercel deployment hostname. */ export declare const HEMMABO_CANONICAL_MCP_ENDPOINT = "https://www.hemmabo.com/mcp"; /** @deprecated Use HEMMABO_CANONICAL_MCP_ENDPOINT */ export declare const HEMMABO_MCP_SERVER_URL = "https://www.hemmabo.com/mcp"; export declare function mcpEndpointFromBaseUrl(base: string): string; export declare function chatgptWidgetOriginFromMcpEndpoint(mcpEndpointUrl: string): string; /** * Claude MCP Apps require a sha256-derived subdomain, not a plain https origin. * @see https://claude.com/docs/connectors/building/mcp-apps/cross-compatibility */ export declare function claudeMcpAppDomain(mcpServerUrl: string): string; export declare const HEMMABO_CLAUDE_WIDGET_DOMAIN: string; /** ChatGPT Apps SDK widget origin (https URL). */ export declare const HEMMABO_CHATGPT_WIDGET_DOMAIN: string; export declare const HEMMABO_WIDGET_URI = "ui://hemmabo/verified-stay-offer-v6.html"; export declare const HEMMABO_PREVIOUS_WIDGET_URI = "ui://hemmabo/verified-stay-offer-v5.html"; export declare const HEMMABO_V3_WIDGET_URI = "ui://hemmabo/verified-stay-offer-v3.html"; export declare const HEMMABO_V2_WIDGET_URI = "ui://hemmabo/verified-stay-offer-v2.html"; export declare const HEMMABO_V1_WIDGET_URI = "ui://hemmabo/verified-stay-offer-v1.html"; export declare const HEMMABO_LEGACY_WIDGET_URI = "ui://hemmabo/property-card"; export declare const HEMMABO_WIDGET_MIME_TYPE = "text/html;profile=mcp-app"; export declare function buildWidgetResourceMeta(mcpEndpointUrl: string): { readonly "openai/widgetDescription": "Renders a verified HemmaBo stay offer from MCP tool results with host-domain trust, live availability, final price, and the signed direct host-domain booking URL."; readonly "openai/widgetPrefersBorder": true; readonly "openai/widgetDomain": string; readonly "openai/widgetCSP": { readonly connect_domains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resource_domains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; readonly redirect_domains: readonly ["https://www.villaakerlyckan.se", "https://villaakerlyckan.se", "https://checkout.stripe.com", "https://*.stripe.com"]; }; readonly ui: { readonly prefersBorder: true; readonly domain: string; readonly csp: { readonly connectDomains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resourceDomains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; }; }; }; export declare const HEMMABO_WIDGET_RESOURCE_META: { readonly "openai/widgetDescription": "Renders a verified HemmaBo stay offer from MCP tool results with host-domain trust, live availability, final price, and the signed direct host-domain booking URL."; readonly "openai/widgetPrefersBorder": true; readonly "openai/widgetDomain": string; readonly "openai/widgetCSP": { readonly connect_domains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resource_domains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; readonly redirect_domains: readonly ["https://www.villaakerlyckan.se", "https://villaakerlyckan.se", "https://checkout.stripe.com", "https://*.stripe.com"]; }; readonly ui: { readonly prefersBorder: true; readonly domain: string; readonly csp: { readonly connectDomains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resourceDomains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; }; }; }; export declare function buildWidgetResource(mcpEndpointUrl: string): { uri: string; name: string; description: string; mimeType: string; _meta: { readonly "openai/widgetDescription": "Renders a verified HemmaBo stay offer from MCP tool results with host-domain trust, live availability, final price, and the signed direct host-domain booking URL."; readonly "openai/widgetPrefersBorder": true; readonly "openai/widgetDomain": string; readonly "openai/widgetCSP": { readonly connect_domains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resource_domains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; readonly redirect_domains: readonly ["https://www.villaakerlyckan.se", "https://villaakerlyckan.se", "https://checkout.stripe.com", "https://*.stripe.com"]; }; readonly ui: { readonly prefersBorder: true; readonly domain: string; readonly csp: { readonly connectDomains: readonly ["https://hemmabo-mcp-server.vercel.app", "https://www.hemmabo.com", "https://hemmabo.com", "https://*.supabase.co"]; readonly resourceDomains: readonly ["https://vfalgymbhyfqsyxkvpqg.supabase.co", "https://www.hemmabo.com", "https://*.hemmabo.com", "https://*.supabase.co", "https://*.vercel.app", "https://www.villaakerlyckan.se", "https://villaakerlyckan.se"]; }; }; }; }; export declare const HEMMABO_WIDGET_TOOL_META: { readonly ui: { readonly resourceUri: "ui://hemmabo/verified-stay-offer-v6.html"; }; readonly "ui/resourceUri": "ui://hemmabo/verified-stay-offer-v6.html"; readonly "openai/outputTemplate": "ui://hemmabo/verified-stay-offer-v6.html"; readonly "openai/toolInvocation/invoking": "Verifying the host-domain stay offer..."; readonly "openai/toolInvocation/invoked": "Verified stay offer ready."; };