import { CotalEndpoint } from "@cotal-ai/core"; import type { ControlCtx } from "./control.js"; /** How the observer authenticates: a static/open creds file, OR the user-mode admin-view material * (a bearer SOURCE so the standing tap survives the ≤5-min token life, plus the pinned principal a * source-mode endpoint requires). Never both. */ export interface ObserverAuth { creds?: string; user?: { source: () => Promise; sentinelCreds: string; owner: string; actor: string; }; } /** The read-only observer the console watches a space through — invisible to peers. Built once * per selected space (the picker can switch spaces at runtime). */ export declare function makeObserver(space: string, server: string, auth?: ObserverAuth, name?: string): CotalEndpoint; /** The operator's presence peer: a second endpoint carrying the observer's own card (the same id, * name, and role, so it IS the `from` of everything the observer sends) that does nothing but * register presence. The console starts it on the operator's first send, so a pure-watch session * stays invisible and a speaking operator becomes a roster peer agents can reply to; the replies * arrive over the observer's whole-space tap. Open mesh only: the console's authed observers hold * no presence-write grant and no live read of their own inbox, so Root offers no factory there. * Not started here: App owns its lifecycle (start on first send, stop with the console). */ export declare function makeParticipant(observer: CotalEndpoint, server: string): CotalEndpoint; /** * Console root. With a fixed `space` (explicit `--space`, or the single space under auth) it goes * straight into the per-space console. Without one (open mesh) it shows the space overview first; * picking a space mounts the console for it — `key={space}` forces a clean MeshView remount, and * `onBack` tears it down to return to the overview. */ export declare function Root({ server, auth, space, canWrite, canControl, controlCtx, name, }: { server: string; auth: ObserverAuth; space?: string; canWrite?: boolean; canControl?: boolean; /** Trust material for per-action control mints — space-less; App adds its own space. */ controlCtx?: Omit; name?: string; }): import("react").JSX.Element; //# sourceMappingURL=root.d.ts.map