import type { State } from "../compile.js"; /** The lock a mutating command holds for its duration. */ export type StateLease = { release: () => Promise; }; /** * Where a project's deploy state lives, behind one interface. * * Every method is async because the cloud implementation is: the local one * satisfies the same shape with synchronous file work, which keeps the commands * free of "is this the file or the workspace" branching. */ export type StateBackend = { /** What to name this backend in a message to the user. */ describe: string; /** The deployed resource map, or undefined when nothing is deployed yet. */ read: () => Promise; write: (state: State) => Promise; /** Record a rollback point. False when there was nothing to record. */ snapshot: () => Promise; /** Restore that rollback point. False when none was recorded. */ restore: () => Promise; acquireLock: (command: string, force?: boolean) => Promise; }; //# sourceMappingURL=types.d.ts.map