import type { Board } from "./model.js"; import type { Entry, Op } from "./ops.js"; /** Captured authoring state, not deployment approval or an execution permission. */ export interface ProposalBasis { version: 1; snapshot: string; } /** A suggestion or proposal no longer matches the work it was made against. */ export declare class StaleSuggestionError extends Error { } /** Capture only the state this operation reads or replaces. Never manufacture this on migration. */ export declare function captureProposalBasis(board: Board, op: Op): ProposalBasis; /** Validate against applied state immediately before the decision is persisted. */ export declare function validateProposalDecision(entries: Entry[], op: Extract, board: Board): void; /** Pin conversational cards to the board supplied to the model. */ export declare function captureCardPreconditions(board: Board, cards: T[]): (T & { preconditions: ProposalBasis[]; })[]; /** Check the whole batch against one pre-application snapshot. */ export declare function validateOperationPreconditions(board: Board, ops: Op[], bases?: ProposalBasis[]): void;