declare const PHASES: readonly ["Staged", "Active", "Retiring", "Closing", "Closed", "Failed"]; declare const COMMANDS: readonly ["Denied", "Granted", "StartClose"]; export type BindingPhase = { $: (typeof PHASES)[number]; }; export interface BindingLife { $: "Life"; phase: BindingPhase; owner: boolean; holds: number; calls: number; revoked: boolean; } export type BindingEvent = { $: "Inspect" | "Activate" | "Retire" | "DropOwner" | "Revoke" | "Release" | "End" | "Shut" | "Complete" | "Abort"; } | { $: "Retain" | "Begin"; cleanup: boolean; }; export interface BindingOutcome { $: "Outcome"; next: BindingLife; command: { $: (typeof COMMANDS)[number]; }; } /** Trusted codec around the compiled lifecycle reducer: the life record is the * machine state, and the event and its cleanup bit are the request. */ export declare const bindingStep: (life: BindingLife, event: BindingEvent) => BindingOutcome; export {}; //# sourceMappingURL=lifecycle.d.ts.map