/** * ChatRoot — top-level Preact component + Shadow DOM bootstrap. * * `mountChatUI()` creates a host `
` on ``, attaches an open * shadow root, injects the shared style string, and renders ``. * * The host element receives a CSS transform when `bubbleDraggable` is * enabled (via `bubble-drag.ts`); the shadow content is purely structural. */ import "@preact/signals"; import { type JSX } from "preact"; import type { ChatController } from "../controller/chat-controller"; import type { ChatStore } from "../store/chat-store"; export interface MountChatUIArgs { store: ChatStore; controller: ChatController; position: "bottom-right" | "bottom-left"; bubbleDraggable: boolean; } export interface MountedChatUI { host: HTMLElement; destroy(): void; } export declare function mountChatUI(args: MountChatUIArgs): MountedChatUI; interface ChatRootProps { store: ChatStore; controller: ChatController; position: "bottom-right" | "bottom-left"; bubbleDraggable: boolean; } export declare function ChatRoot({ store, controller, position, bubbleDraggable, }: ChatRootProps): JSX.Element; export {};