/** * Admin TML shell — connect/seed/mount lifecycle + unified mutation facade. * @module trellis/ui */ import { type TmlDriver } from './tml-runtime.js'; export { rehydrateShellsForView } from './tml-shell-registry.js'; export type AdminDriverMode = 'web' | 'peer'; export interface AdminShellOptions { /** DOM subtree root for `mount()` — typically `.main` */ mountRoot: Element; /** Called on every snapshot seed (initial connect + SSE snapshot events) */ onSnapshot?: (snap: unknown) => void; baseUrl?: string; /** Default `'web'`. Read from `?driver=peer` when omitted. */ driver?: AdminDriverMode; /** Test hook — overrides `location.search` for driver resolution */ locationSearch?: string; snapshotUrl?: string; streamUrl?: string; } export interface AdminShell { readonly driver: TmlDriver; /** Fetch snapshot, seed store, subscribe SSE snapshots, then mount TML */ connect(): Promise; /** POST /api/tml-mutations via driver */ op(action: string, args: Record): Promise; } export declare function resolveDriverMode(opts: AdminShellOptions): AdminDriverMode; export declare function createAdminShell(opts: AdminShellOptions): AdminShell; //# sourceMappingURL=admin-shell.d.ts.map