import { IEmitOptions, IBatchEmitOptions, IFailedEmitBatchMessage } from "../types";
import { IOutbox, OutboxConfig, OutboxEvent } from "./types";
export declare class Outbox implements IOutbox {
    private readonly config;
    constructor(config: OutboxConfig);
    updateEvents(events: OutboxEvent[]): Promise<void>;
    handleEvent(event: OutboxEvent, errorReason?: unknown): OutboxEvent;
    handleBatchEvent(event: OutboxEvent, response: IFailedEmitBatchMessage[], errorReason?: unknown): OutboxEvent;
    createEvent(eventName: string, options: IEmitOptions | IBatchEmitOptions, payload?: any, isBatch?: boolean): Promise<OutboxEvent>;
    getOutboxEvents(ids: string[]): Promise<OutboxEvent[]>;
}
