import type { IslandLoader } from "./contract.js"; import type { IslandLifecycle } from "./lifecycle.js"; import { type ShopifyLifecycleRuntime } from "./shopify-lifecycle.js"; /** Runtime control verb semantics for Observed roots. */ export interface ObservedRootSession { disconnect(): void; scan(root?: HTMLElement | null): void; observe(root?: HTMLElement | null): void; unobserve(root?: HTMLElement | null): void; } interface OwnershipActivationCandidate { tagName: string; element: HTMLElement; loader: IslandLoader; } interface OwnershipSession { discover(tagName: string, element: HTMLElement): void; activate(candidate: OwnershipActivationCandidate): Promise; clear(tagNames?: Iterable): void; } export interface ObservedRootSessionDeps { islandMap: Map; lifecycle: Pick; session: OwnershipSession; surface: { beginReadyLog(islandCount: number): () => void; }; connectShopify?: (runtime: ShopifyLifecycleRuntime) => () => void; } export declare function createObservedRootSession(deps: ObservedRootSessionDeps): ObservedRootSession; export {};