/** * Banner renderer — mounts one outbound banner into its own isolated Shadow DOM * root (separate from the chat widget's), using plain DOM (no Preact) to stay * lightweight. Returns a handle to tear it down. */ import type { OutboundCta, OutboundDelivery } from "./types"; export interface BannerHandle { destroy(): void; } export interface BannerCallbacks { onCta(cta: OutboundCta): void; onDismiss(): void; } /** * Render a banner delivery. Removes any existing banner first so only one shows * at a time. No-op (returns a dummy handle) outside a browser DOM. */ export declare function renderBanner(delivery: OutboundDelivery, callbacks: BannerCallbacks): BannerHandle; /** Remove any mounted banner without going through a handle (defensive cleanup). */ export declare function removeBanner(): void;