import type { OutboxEvent, OutboxReceipt, OutboxStore } from "./store.js"; declare const OUTBOX_PROCESSOR: unique symbol; export interface OutboxHandlerContext { operationNonce: string; } export type OutboxHandler = (event: Readonly, context: Readonly) => Record | Promise>; export interface ProcessOutboxEventInput { eventId: string; consumerId: string; processedAt: string; } export type ProcessOutboxEventResult = { status: "processed"; event: OutboxEvent; receipt: OutboxReceipt; } | { status: "replayed"; event: OutboxEvent; receipt: OutboxReceipt; }; export interface OutboxProcessor { readonly [OUTBOX_PROCESSOR]: true; processOne(input: ProcessOutboxEventInput, handler: OutboxHandler): Promise; } export declare function createOutboxProcessor(store: OutboxStore): OutboxProcessor; export declare function assertOutboxProcessor(value: unknown): asserts value is OutboxProcessor; export {};