import type { DeliverHookPayload, SessionCommand, SessionTimeoutHookPayload } from "#channel/types.js"; /** * Payloads accepted by a session driver's stable and channel aliases. * * `DeliverHookPayload` is the only delivery format producers persist. The * `send` member of `SessionCommand` stays accepted solely for payloads * persisted by eve 0.30.3–0.30.8, which wrote the command shape directly; * sessions are bounded by the 30-day default timeout, so the decode can be * dropped once runs created on those versions have aged out. */ export type SessionInboxPayload = DeliverHookPayload | SessionCommand | SessionTimeoutHookPayload; /** Multiplexes one stable session hook and one rekeyable channel alias. */ export interface SessionCommandInbox { claimStable(token: string): Promise; consumeNext(): void; next(): Promise>; rekeyContinuation(token: string): Promise; } /** Adds workflow-entry lifecycle ownership to a session command inbox. */ export interface SessionCommandInboxHandle extends SessionCommandInbox { dispose(): Promise; } /** * Creates the command inbox owned by one session driver. * * The stable hook is retained for the session's lifetime. Rekeying replaces * only the channel alias. Reads already committed to a retired alias remain in * the multiplexed queue and are consumed exactly once. */ export declare function createSessionCommandInbox(): SessionCommandInboxHandle;