void> | undefined;
/** Register an island's behavior by name (the markup's `data-island` value). */
export declare function island(name: string, setup: IslandSetup): void;
/** The host-element surface `mountIslands` needs beyond bindings. */
export interface IslandHost extends BindableElement, BindableRoot {
setAttribute(name: string, value: string): void;
}
export interface MountIslandOptions {
readonly root?: BindableRoot;
}
/**
* Mount every registered island under `root` (default: the document). Idempotent - a host is
* marked once mounted, so calling again (e.g. after a soft navigation swapped content in) only
* mounts new hosts. Unregistered island names are skipped silently: markup may ship ahead of
* its script, and progressive enhancement means the static content is already correct.
*/
export declare function mountIslands(rootOrOptions?: BindableRoot | MountIslandOptions): () => void;
/**
* Server-side helper: the value for a host's `data-island-state` attribute. Plain JSON - emit it
* through an escaping renderer (`@nifrajs/web-vanilla`'s `html` escapes quotes in attributes), e.g.
* `html\`…\``.
*/
export declare function islandState(state: Record): string;
//# sourceMappingURL=island.d.ts.map