/** * @sharpee/platform-browser/channels/layout — default layout helper. * * Owner context: browser default. Constructs the platform-default DOM * scaffold per ADR-165 §7's slot table: * * | Slot | Channels rendered into it | * | status | location, score, turn | * | main | main (prose) | * | sidebar | (multi-user — chat, presence) | * | input | prompt + user input field | * | media | image:*, animation, transition | * | notify | death, endgame, score_notify (toasts) | * | meta | info, ifid (typically hidden) | * * The helper either constructs the DOM fresh inside a host root, or * adopts existing elements when the host page already provides them * (the `BrowserClient` integration path used by the Sharpee web * client). Stories that replace the layout entirely skip this helper * and call `Renderer.registerSlot(name, handle)` directly. * * Returns a `BrowserDefaultLayout` handle the caller passes to * `registerDefaultBrowserRenderers`. */ export interface BrowserDefaultLayout { /** Root container — typically the page body or a dedicated mount point. */ readonly root: HTMLElement; readonly status: HTMLElement; readonly statusLocation: HTMLElement; readonly statusScore: HTMLElement; readonly statusTurn: HTMLElement; readonly main: HTMLElement; readonly sidebar: HTMLElement; readonly input: HTMLInputElement; readonly inputPromptLabel: HTMLElement; readonly media: HTMLElement; readonly notify: HTMLElement; readonly meta: HTMLElement; } export interface MountDefaultLayoutOptions { /** * Optional document for testing (defaults to the host's * `globalThis.document`). */ doc?: Document; } /** * Mount the platform-default layout under `root`. Constructs the * slot DOM if not already present. Idempotent — calling twice on * the same root reuses existing slots rather than creating duplicates. */ export declare function mountDefaultLayout(root: HTMLElement, opts?: MountDefaultLayoutOptions): BrowserDefaultLayout; //# sourceMappingURL=layout.d.ts.map