import type { Board } from "./model.js"; export interface AlternativeChange { entity: "board" | "job" | "track" | "artifact" | "region"; id: string; field: string; before: unknown; after: unknown; } export interface AlternativeConflict extends AlternativeChange { current: unknown; } export interface AlternativePreview { sourceBoard: string; alternativeBoard: string; baselineId: string; /** Exact canonical review token, not a cryptographic signature or authorization. */ basis: string; changes: AlternativeChange[]; conflicts: AlternativeConflict[]; problems: string[]; canAccept: boolean; } /** The caller must load the immutable baseline from storage, never from a client payload. */ export declare function previewAlternative(source: Board, alternative: Board, baseline: Board): AlternativePreview; /** Call inside the source write lock and reload both designs before checking the review token. */ export declare function acceptAlternative(source: Board, alternative: Board, baseline: Board, expectedBasis: string): Board;