export interface TransactionInput { root: string; archivePath: string; transactionId: string; verifierModulePath: string; trustPolicyPath: string; uid: number; gid: number; now?: string; clock?: () => string; verifySignedReleaseEnvelope?: (input: any) => any; smokeCheck?: (input: { releaseDir: string; manifestDigest: string }) => Promise; smokeCommand?: string; expectedCurrentManifestDigest?: string | null; expectedFence?: number; crashPoint?: 'before-swap' | 'after-swap'; targetReleaseId?: string; } export interface ControlState { schema: 'portfolio-release-control-state/v1'; currentManifestDigest: string | null; currentReleaseId: string | null; publisherFence: number; latestLedgerHeadHash: string; latestLedgerRevision: number; activeTransaction: null | Record; } export function readControlState(root: string): Promise; export function prepareRelease(input: TransactionInput): Promise>; export function activateRelease(input: TransactionInput): Promise>; export function rollbackRelease(input: TransactionInput): Promise>; export function cleanupOrphanStages(root: string): Promise;