import type { CotalEndpoint } from "@cotal-ai/core"; import { type ControlCtx } from "./control.js"; /** * The lazygit-style console: channel tabs · golden-signal tiles · roster · live feed · status bar, * plus the NEEDS-YOU rail (`n`), the DM lens (`d`), and the `:` operator command palette. `useMesh` * owns the observer endpoint; panels lay out `mesh` and (when `canWrite`) the palette publishes * chat over the same endpoint. Control (`D` kill, `:spawn` / `:purge` / `:status` / `:ps`) * never rides the observer: each action is one call through the CLI's * per-action control path (console/control.ts), gated on `canControl`. Input is single-source: * this global handler owns the keys/overlays; panels' keys are gated on focus and `blocked`. */ export declare function App({ ep, tapSubject, onBack, canWrite, canControl, controlCtx, makeParticipant, }: { ep: CotalEndpoint; tapSubject?: string; onBack?: () => void; canWrite?: boolean; canControl?: boolean; /** The `--server` / `--creds` half of the control coordinates; the App adds the watched space. */ controlCtx?: Omit; /** Builds the operator's presence peer (root.tsx); absent where the mesh cannot host one. */ makeParticipant?: () => CotalEndpoint; }): import("react").JSX.Element | null; //# sourceMappingURL=app.d.ts.map