import { type EvoPaths } from "../paths.ts"; import type { DataApprovalActivation, EvoStatus, Proposal, TrialState } from "../types.ts"; export type RegistryTransitionAction = "initialize" | "activate-trial" | "approve-data" | "approve-code" | "keep-trial" | "direct-keep-trial" | "keep-proposal" | "rollback" | "rollback-proposal" | "record-decision" | "record-deferral" | "record-reopen" | "reject-proposal" | "defer-proposal" | "reopen-proposal" | "pause" | "resume"; export type RegistryTransitionStep = "prepared" | "trial-written" | "stable-written" | "paused-written" | "proposal-written" | "snapshot-written" | "history-appended" | "memory-rolled-back" | "trial-cleared" | "paused-cleared" | "receipt-appended" | "committed"; export interface BundleRegistryOptions { afterTransitionStep?: (step: RegistryTransitionStep, action: RegistryTransitionAction) => void | Promise; } export interface RegistryOperationState { digest: string; latestOperationId?: string; } export interface RegistryMemoryLifecycleState { stableDigest: string | undefined; trial: TrialState | undefined; verifiedBundleLineage: readonly string[]; } interface ProposalTransitionOptions { idempotencyKey?: string; expectedStateDigest?: string; action: "reject-proposal" | "defer-proposal" | "reopen-proposal"; proposalBefore: Proposal; proposalAfter: Proposal; reason: string; } export declare class BundleRegistry { readonly paths: EvoPaths; private readonly options; constructor(paths?: EvoPaths, options?: BundleRegistryOptions); private readStableDigestUnlocked; readStableDigest(): Promise; private readTrialUnlocked; readTrial(): Promise; withMemoryLifecycle(operation: (state: RegistryMemoryLifecycleState) => Promise): Promise; private readPausedUnlocked; private readProposal; private withProposalLock; private afterStep; private readHistory; private assertRollbackTargetAllowed; private appendHistoryOnce; private readReceipts; private appendReceiptOnce; private readMatchingReceipt; private readOperationStateUnlocked; getOperationState(): Promise; private assertExpectedOperationState; private createTransition; private assertTransitionState; private applyTransitionUnlocked; private executeTransitionUnlocked; private readPendingTransition; private recoverPendingUnlocked; recoverPendingTransition(): Promise; private runHistoryTransitionUnlocked; initialize(digest: string, reason?: string): Promise; activateTrial(options: { digest: string; proposalId: string; plan: string; }): Promise; approveDataProposal(options: { idempotencyKey?: string; expectedStateDigest?: string; proposalId: string; revision: number; diffDigest: string; parentDigest: string; candidateDigest: string; tier: "T0" | "T1" | "T2"; plan: string; activation?: DataApprovalActivation; reason: string; proposalBefore: Proposal; proposalAfter: Proposal; }): Promise<{ proposal: Proposal; trial: TrialState | undefined; }>; approveCodeProposal(options: { idempotencyKey?: string; proposalId: string; expectedStateDigest?: string; parentDigest: string; revision: number; diffDigest: string; approvalDigest: string; branch: string; reason: string; proposalBefore: Proposal; proposalAfter: Proposal; }): Promise; keepTrial(reason: string): Promise; directKeepComponentTrial(options: { proposalId: string; reason: string; idempotencyKey?: string; expectedStateDigest?: string; }): Promise; keepProposal(reason: string, idempotencyKey?: string, expectedStateDigest?: string, expectedEvidenceDigest?: string): Promise; rollback(targetDigest: string | undefined, reason: string, proposalId?: string): Promise<{ from: string; to: string; }>; rollbackProposal(targetDigest: string | undefined, reason: string, idempotencyKey?: string, expectedStateDigest?: string): Promise<{ from: string; to: string; proposal?: Proposal; }>; recordDecision(options: { proposalId: string; approved: boolean; reason: string; revision?: number; diffDigest?: string; }): Promise; recordDeferral(options: { proposalId: string; revision: number; diffDigest: string; reason: string; }): Promise; recordReopen(options: { proposalId: string; revision: number; diffDigest: string; reason: string; }): Promise; transitionProposal(options: ProposalTransitionOptions): Promise; pause(reason: string): Promise; resume(reason: string): Promise; isPaused(): Promise; getStatus(): Promise; } export {}; //# sourceMappingURL=registry.d.ts.map