import { type RuntimeManifestIdentity, type RuntimePromotionIntentKind, type RuntimePromotionJournal, type RuntimePromotionOwnedSlotName, type RuntimePromotionPostconditionOutcome } from './runtime-promotion-journal-schema.js'; import type { DurableClosedPromotionJournal, DurableOpenPromotionJournal, RuntimePromotionJournalController } from './runtime-promotion-journal.js'; export type RuntimeMutationOutcome = Exclude; export interface RuntimePromotionTransitionContext { readonly controller: RuntimePromotionJournalController; readonly now: () => number; } export declare function runtimePromotionMutationOutcome(status: string): RuntimeMutationOutcome; interface OpenIntentIdentity { readonly kind: RuntimePromotionIntentKind; readonly slot: RuntimePromotionOwnedSlotName; } interface OpenPostconditionIdentity extends OpenIntentIdentity { readonly outcome: RuntimeMutationOutcome; } /** @throws {Error} Always; the requested runtime promotion transition is invalid. */ export declare function transitionFailure(message: string): never; export declare function transitionTime(current: RuntimePromotionJournal, context: RuntimePromotionTransitionContext): number; export declare function sameManifest(left: RuntimeManifestIdentity | null, right: RuntimeManifestIdentity | null): boolean; export declare function assertOpenForward(current: RuntimePromotionJournal, phase?: RuntimePromotionJournal['progress']['phase']): void; export declare function assertOpenRollback(current: RuntimePromotionJournal, phase?: RuntimePromotionJournal['progress']['phase']): void; export declare function replaceOpen(context: RuntimePromotionTransitionContext, receipt: DurableOpenPromotionJournal, build: (current: RuntimePromotionJournal, recordedAt: number) => RuntimePromotionJournal): Promise; export declare function recordOpenIntent(context: RuntimePromotionTransitionContext, receipt: DurableOpenPromotionJournal, identity: OpenIntentIdentity): Promise; export declare function recordOpenPostcondition(context: RuntimePromotionTransitionContext, receipt: DurableOpenPromotionJournal, identity: OpenPostconditionIdentity, effects: (current: RuntimePromotionJournal) => Pick): Promise; export declare function recordClosedCleanupIntent(context: RuntimePromotionTransitionContext, receipt: DurableClosedPromotionJournal, slot: RuntimePromotionOwnedSlotName): Promise; export declare function recordClosedCleanupPostcondition(context: RuntimePromotionTransitionContext, receipt: DurableClosedPromotionJournal, slot: RuntimePromotionOwnedSlotName, outcome: RuntimeMutationOutcome): Promise; export {}; //# sourceMappingURL=runtime-promotion-transitions-common.d.ts.map