import type { ActionProposal, ActionProposalDecisionCommand, ActionProposalMutationResult, ActionProposalScope, ClaimActionProposal, CreateActionProposal, ExtendActionProposalLease, ListActionProposals, SettleActionProposal } from './spi/action-proposal-store.js';
export declare function validateActionProposalCreation(input: CreateActionProposal): void;
export declare function validateActionProposalListQuery(query?: ListActionProposals): number;
/** Canonical JSON snapshots keep replay equality independent of object key insertion order. */
export declare function canonicalActionProposalJson(value: unknown): string;
export declare function snapshotActionProposal<T>(value: T): T;
export declare function actionProposalScopeMatches(row: ActionProposalScope, scope: ActionProposalScope): boolean;
export declare function initialActionProposal(input: CreateActionProposal, now: number): ActionProposal;
export declare function actionProposalCreationMatches(row: ActionProposal, input: CreateActionProposal): boolean;
export declare function transitionActionProposalDecision(row: ActionProposal, command: ActionProposalDecisionCommand, now: number): ActionProposalMutationResult;
export declare function transitionActionProposalClaim(row: ActionProposal, command: ClaimActionProposal, now: number, token: string): ActionProposalMutationResult;
export declare function transitionActionProposalLease(row: ActionProposal, command: ExtendActionProposalLease, now: number): ActionProposalMutationResult;
export declare function transitionActionProposalSettlement(row: ActionProposal, command: SettleActionProposal, now: number): ActionProposalMutationResult;
/** Caller must obtain the replacement through the same full scope and persistence authority. */
export declare function transitionActionProposalSupersession(row: ActionProposal, replacement: ActionProposal, command: {
    replacementProposalId: string;
    actorRef: string;
    via: string;
}, now: number): ActionProposalMutationResult;
//# sourceMappingURL=action-proposal-transitions.d.ts.map