import type { AmqCliAdapter } from "./amq-cli-adapter.js"; import { type AmqMessage } from "./amq-message.js"; import { BridgeJournal, type DiskProjectionEvidence } from "./bridge-journal.js"; import { type DlqRetryAuditVerifier } from "./dlq-retry-audit.js"; import { PriorityDeliveryScheduler } from "./priority-delivery-scheduler.js"; import { ReceiverLeaseManager } from "./receiver-lease.js"; import { InboxStatusStore } from "./runtime-status.js"; export interface InboxBinding { readonly root: string; readonly rootId: string; readonly handle: string; } export type InboxAuthorityResult = { readonly kind: "valid"; } | { readonly kind: "invalid"; readonly diagnostic: string; }; export interface InboxAuthority { revalidate(signal?: AbortSignal): Promise; } export interface SessionProjectionLookup { find(messageId: string, targetSessionId: string, signal?: AbortSignal): Promise; } export interface IncomingFreshSessionDispatcher { dispatch(message: AmqMessage, signal?: AbortSignal): Promise<{ readonly kind: "ordinary"; } | { readonly kind: "refused"; readonly reason: string; } | { readonly kind: "pending"; readonly reason: string; readonly action: "/amq ingest"; } | { readonly kind: "dispatched"; readonly projection: DiskProjectionEvidence; }>; } type JsonCommandRunner = Pick; export interface InboxPumpOptions { readonly adapter: JsonCommandRunner; readonly binding: InboxBinding; readonly receiverGeneration: string; readonly targetSessionId: string; readonly authority: InboxAuthority; readonly journal: BridgeJournal; readonly scheduler: PriorityDeliveryScheduler; readonly status?: InboxStatusStore; readonly projectionLookup?: SessionProjectionLookup; readonly freshSessionDispatcher?: IncomingFreshSessionDispatcher; readonly retryAuditVerifier?: DlqRetryAuditVerifier; readonly now?: () => Date; readonly random?: () => number; readonly sleep?: (milliseconds: number, signal?: AbortSignal) => Promise; readonly backoff?: { readonly initialMs?: number; readonly maximumMs?: number; readonly multiplier?: number; readonly jitterRatio?: number; }; } /** Supervises one non-consuming watch child and the exact-ID claim pipeline. */ export declare class InboxPump { #private; constructor(options: InboxPumpOptions); run(signal?: AbortSignal): Promise; claimExact(id: string, signal?: AbortSignal): Promise; ingestStaged(signal?: AbortSignal): Promise; } export declare class LeaseBackedInboxAuthority implements InboxAuthority { #private; constructor(options: { readonly lease: ReceiverLeaseManager; readonly generation: string; readonly verifyBinding: (signal?: AbortSignal) => Promise; }); revalidate(signal?: AbortSignal): Promise; } export {}; //# sourceMappingURL=inbox-pump.d.ts.map