/** * Write guard for a project store whose twin collapse failed (T12535). * * When the collapse cannot run inside a domain bind, the bind still succeeds. * Reads are served from TEMP shadows holding the merged, bare-authoritative * view (see `twin-collapse.ts`), so nobody is locked out, but a write would * land in a shadow or in a twin that is not in step. This module is the * single question the write path asks: may this project's store be written? * The CLI dispatch pipeline asks it for every mutating operation. * * @module * @task T12535 */ import type { CleoError } from '../errors.js'; /** The operation asking to write, as the dispatch pipeline names it. */ export interface StoreWriteRequest { readonly domain: string; readonly operation: string; } /** * The `E_TWIN_COLLAPSE_FAILED` error that blocks this write to the project's * store, or `null` when it may proceed. * * Binds the tasks domain first (which runs the collapse), so the answer is * current. A project without a store, or one whose bind fails for another * reason, is not blocked here: the operation then fails, or not, on its own. * * @param projectRoot - Project directory. * @param request - The operation; omitted, any failed pair blocks. * @returns The blocking error, or `null`. * @task T12535 */ export declare function storeWriteBlock(projectRoot: string, request?: StoreWriteRequest): Promise; //# sourceMappingURL=store-write-guard.d.ts.map