/** Preserve the exact contribution literal while applying the public v1 type. */ export declare function defineLinkUnfurlContribution(contribution: Contribution): Contribution; export declare const TAP_LINK_UNFURL_PROTOCOL_V1: 'tap-link-unfurl-v1'; /** A host-owned action admitted by the signed renderer contribution. */ declare interface TapInlineRendererAction { readonly id: string; readonly label: string; /** * Request the declared host action. When supplied, `payloadPointer` is an * RFC 6901 pointer into the host-sealed payload; renderer-authored values are * never accepted as navigation targets. */ invoke(payloadPointer?: string): void; } /** Default export implemented by a `tap-federated-view-v1` renderer expose. */ declare interface TapInlineRendererModule { mount(container: HTMLElement, context: TapInlineRendererMountContext): TapInlineRendererMount | void | Promise; } declare interface TapInlineRendererMount { unmount(): void | Promise; } /** Least-authority mount context supplied to one isolated package renderer. */ declare interface TapInlineRendererMountContext { readonly packageId: string; readonly releaseId: string; readonly installationId: string; readonly contributionId: string; readonly rendererContributionId: string; readonly documentId: string; readonly instanceId: string; readonly payload: Readonly; readonly theme: TapInlineRendererTheme; readonly actions: Readonly>; readonly resources: TapInlineRendererResources; } /** Host-authorized, same-origin resources resolved outside `postMessage`. */ declare interface TapInlineRendererResources { /** Read one declared resource. Each id is fetched at most once per mount. */ read(id: string): Promise>; } declare interface TapInlineRendererTheme { getSnapshot(): TapInlineRendererThemeValue; subscribe(listener: () => void): () => void; } /** Live host-selected color scheme for an isolated inline renderer. */ declare type TapInlineRendererThemeValue = 'light' | 'dark'; export declare type TapLinkUnfurlContributionV1 = Readonly<{ kind: 'link.unfurl'; id: string; apiVersion: 1; targets: Readonly<{ desktop: Readonly<{ runtime: 'host-declarative'; }>; mobile?: never; }>; lifecycleScope: 'installation'; authorization?: Readonly<{ allOf?: readonly string[]; }>; options: Readonly<{ protocol: typeof TAP_LINK_UNFURL_PROTOCOL_V1; rendererContributionId: string; match: Readonly<{ hostname: string; pathTemplate: string; }>; }>; }>; /** Immutable host-built payload for one package-owned link preview. */ export declare type TapLinkUnfurlPayloadV1 = Readonly<{ protocol: typeof TAP_LINK_UNFURL_PROTOCOL_V1; preview: TapLinkUnfurlPreview; captures: Readonly>; target: TapLinkUnfurlTargetV1; }>; /** Display-safe link metadata copied into the public Miniapp boundary. */ export declare type TapLinkUnfurlPreview = Readonly<{ sourceUrl: string; canonicalUrl: string; provider: string; kind: TapLinkUnfurlPreviewKind; title?: string; description?: string; siteName?: string; author?: TapLinkUnfurlPreviewAuthor; image?: TapLinkUnfurlPreviewImage; publishedAt?: number; }>; export declare type TapLinkUnfurlPreviewAuthor = Readonly<{ name?: string; handle?: string; url?: string; avatarUrl?: string; }>; export declare type TapLinkUnfurlPreviewImage = Readonly<{ url: string; altText?: string; width?: number; height?: number; }>; export declare type TapLinkUnfurlPreviewKind = 'MESSAGE_LINK_PREVIEW_KIND_WEB_PAGE' | 'MESSAGE_LINK_PREVIEW_KIND_IMAGE' | 'MESSAGE_LINK_PREVIEW_KIND_VIDEO' | 'MESSAGE_LINK_PREVIEW_KIND_AUDIO' | 'MESSAGE_LINK_PREVIEW_KIND_SOCIAL_POST'; export declare type TapLinkUnfurlRendererModule = TapInlineRendererModule; export declare type TapLinkUnfurlTargetV1 = Readonly<{ kind: typeof TAP_LINK_UNFURL_PROTOCOL_V1; contributionId: string; sourceUrl: string; captures: Readonly>; }>; export { }