/** * Per-bot session-backend override persistence. Mirrors sandbox-store: * cross-process file lock + atomic bots.json write + in-memory registry sync, * so the daemon picks up the change WITHOUT a restart. * * Live-safe by construction: only the NEXT session spawn reads the new * `botCfg.backendType` (forkWorker resolves `botCfg.backendType ?? default`). * Already-running sessions keep the backend stamped on `Session.backendType` * at spawn time — `getSessionPersistentBackendType` prefers that stamp over * live config and never falls back to the current default — so an operator * flipping herdr↔tmux here can't strand or zombie-close existing sessions. * * `null` clears the override → the bot falls back to `config.daemon.backendType` * (auto-detected default). */ import type { BackendType } from '../adapters/backend/types.js'; /** Backends an operator may pick from in the dashboard. */ export declare const EDITABLE_BACKEND_TYPES: readonly BackendType[]; export declare function isEditableBackendType(v: unknown): v is BackendType; /** Current per-bot backend override (undefined = follow the daemon default). */ export declare function getBotBackendType(larkAppId: string): BackendType | undefined; /** * Persist a per-bot backend override. Pass `null` to clear it (auto-detect). * Never touches running sessions — takes effect on the next spawn / restart. */ export declare function updateBotBackendType(larkAppId: string, backendType: BackendType | null): Promise<{ ok: true; backendType: BackendType | null; } | { ok: false; reason: string; }>; //# sourceMappingURL=backend-type-store.d.ts.map