/**
 * 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<void>;
    /** POST /api/tml-mutations via driver */
    op(action: string, args: Record<string, unknown>): Promise<void>;
}
export declare function resolveDriverMode(opts: AdminShellOptions): AdminDriverMode;
export declare function createAdminShell(opts: AdminShellOptions): AdminShell;
//# sourceMappingURL=admin-shell.d.ts.map