import type { ActionProposalOutcomeLease, ActionProposalOutcomeStore } 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 { ActionProposalDiscoveryIndexStore, ActionProposalWorkerStore } from '../spi/action-proposal-worker-store.js'; import type { LucidDatabaseLike } from './lucid.js'; /** * Durable work is embedded in the proposal snapshot. One version-fenced UPDATE commits both * approval and queued work, so there is no dispatch gap requiring a second transactional table. * Physical keys hash exact JSON identities to avoid MySQL PAD SPACE/collation equivalence. */ export declare class LucidActionProposalStore implements ActionProposalStore, ActionProposalWorkerStore, ActionProposalDiscoveryIndexStore, ActionProposalOutcomeStore { private readonly proposalDb; private readonly ensureProposalSchema; private readonly proposalClock; constructor(proposalDb: LucidDatabaseLike, options?: ActionProposalStoreOptions, ensureProposalSchema?: () => Promise); createActionProposal(input: CreateActionProposal): Promise; createReplacingActionProposal(input: CreateActionProposal): Promise; supersedeActionProposal(scope: ActionProposalScope, id: string, command: { replacementProposalId: string; actorRef: string; via: string; }): Promise; protected rememberedActionProposalTools(scope: ActionProposalScope): Promise; getActionProposal(scope: ActionProposalScope, id: string): Promise; listActionProposals(scope: ActionProposalScope, query?: ListActionProposals): Promise; private mutate; getThreadActionProposalScope(threadId: string): Promise<{ threadId: string; actorRef: string; tenantRef: string | null; } | null>; claimNextActionProposalOutcome(command: { workerId: string; leaseMs: number; }): Promise<{ outcome: import("../spi/action-proposal-outcome-store.js").ActionProposalOutcome; lease: { outcomeId: string; token: string; generation: number; }; } | null>; admitActionProposalOutcome(command: ActionProposalOutcomeLease): ReturnType; claimNextActionProposal(command: ClaimActionProposal): Promise; expireActionProposals(command: { limit: number; }): Promise; backfillActionProposalDiscoveryIndex(command: { limit: number; }): Promise; decideActionProposal(scope: ActionProposalScope, id: string, command: ActionProposalDecisionCommand): Promise; claimActionProposal(scope: ActionProposalScope, id: string, command: ClaimActionProposal): Promise; extendActionProposalLease(scope: ActionProposalScope, id: string, command: ExtendActionProposalLease): Promise; settleActionProposal(scope: ActionProposalScope, id: string, command: SettleActionProposal): Promise; } //# sourceMappingURL=lucid-action-proposal-store.d.ts.map