import { Context, MiddlewareHandler } from "hono";
import { OutboxAdapter } from "@authhero/adapter-interfaces";
import { Bindings, Variables } from "../types";
import { EventDestination } from "../helpers/outbox-relay";
type Ctx = Context<{
    Bindings: Bindings;
    Variables: Variables;
}>;
export interface OutboxMiddlewareOptions {
    /**
     * Resolve the OutboxAdapter for this request.
     * Return undefined to skip outbox processing.
     */
    getOutbox: (ctx: Ctx) => OutboxAdapter | undefined;
    /**
     * Build the list of destinations for delivering outbox events.
     */
    getDestinations: (ctx: Ctx) => EventDestination[];
}
export declare function outboxMiddleware(options: OutboxMiddlewareOptions): MiddlewareHandler<{
    Bindings: Bindings;
    Variables: Variables;
}>;
export {};
