export type IslandMode = 'morph' | 'append' | 'prepend' | 'static'; /** * A single `@island`/`@endisland` region's rendered content, wrapped in * the same HTML comment fragment markers `Slot` uses — the client * (assets/livewire.js's supportIslands.js) locates the right DOM region * to patch by matching `type` + `token`, exactly like it does for slots. * * `'static'` isn't a real Livewire mode — it's a sentinel used only for * the copy of an island embedded inline in the component's own full * `html` effect (never sent through the `islandFragments` response path, * which always carries a real caller-requested mode). The client's * generic full-page morph already skips any fragment whose incoming * `mode !== 'morph'` (`getMorphConfig().updating` in assets/livewire.js — * built for protecting append/prepend regions from being clobbered), so * tagging a non-`always` island's inline copy `'static'` when it isn't * this request's direct target reuses that existing skip with zero * client changes — matching official Livewire's "islands don't re-render * on unrelated updates by default" behavior (see `SupportIslands`). */ export declare class Island { name: string; content: string; componentId: string; mode: IslandMode; constructor(name: string, content: string, componentId: string, mode?: IslandMode); /** * Stable across renders of the same island (same name + component) — * the client needs the SAME token on the initial render's start marker * and on every subsequent re-render's fragment to find the right spot. */ getToken(): string; toHtml(): string; toString(): string; }