import type { ActionProposalOutcome, ActionProposalOutcomeLease } from '../spi/action-proposal-outcome-store.js';
import type { ActionProposal, ActionProposalDecisionCommand, ActionProposalMutationResult, ActionProposalScope, ActionProposalStore, ActionProposalStoreOptions, ClaimActionProposal, CreateActionProposal, CreateActionProposalResult, ExtendActionProposalLease, ListActionProposals, SettleActionProposal } from '../spi/action-proposal-store.js';
import type { ActionProposalWorkerStore } from '../spi/action-proposal-worker-store.js';
/** Reference single-process implementation; durable adapters use the same transitions under CAS. */
export declare class InMemoryActionProposalStore implements ActionProposalStore, ActionProposalWorkerStore {
    protected readonly rows: Map<string, ActionProposal>;
    protected readonly clock: () => number;
    constructor(options?: ActionProposalStoreOptions);
    createActionProposal(input: CreateActionProposal): Promise<CreateActionProposalResult>;
    getActionProposal(scope: ActionProposalScope, id: string): Promise<ActionProposal | null>;
    listActionProposals(scope: ActionProposalScope, query?: ListActionProposals): Promise<ActionProposal[]>;
    private mutate;
    decideActionProposal(scope: ActionProposalScope, id: string, command: ActionProposalDecisionCommand): Promise<ActionProposalMutationResult>;
    claimActionProposal(scope: ActionProposalScope, id: string, command: ClaimActionProposal): Promise<ActionProposalMutationResult>;
    extendActionProposalLease(scope: ActionProposalScope, id: string, command: ExtendActionProposalLease): Promise<ActionProposalMutationResult>;
    settleActionProposal(scope: ActionProposalScope, id: string, command: SettleActionProposal): Promise<ActionProposalMutationResult>;
    claimNextActionProposal(command: ClaimActionProposal): Promise<ActionProposal | null>;
    expireActionProposals(command: {
        limit: number;
    }): Promise<number>;
    claimNextActionProposalOutcome(command: ClaimActionProposal): Promise<{
        outcome: ActionProposalOutcome;
        lease: ActionProposalOutcomeLease;
    } | null>;
    createReplacingActionProposal(input: CreateActionProposal): Promise<CreateActionProposalResult>;
    supersedeActionProposal(scope: ActionProposalScope, id: string, command: {
        replacementProposalId: string;
        actorRef: string;
        via: string;
    }): Promise<ActionProposalMutationResult>;
}
//# sourceMappingURL=in-memory-action-proposal-store.d.ts.map