import { EventBus } from "./event-bus"; import { ExternalEvent } from "./external-event"; export interface EventDispatcherOptions { maxRetries?: number; retryDelay?: number; exponentialBackoff?: boolean; callbacks?: { onSuccess?: (externalEvent: ExternalEvent) => void; onError?: (error: Error, externalEvent: ExternalEvent) => void; onRetry?: (event: string, attempt: number, error: Error) => void; }; correlationIdGenerator?: () => string; timestampGenerator?: () => string; } export declare class EventDispatcher { private readonly eventBus; private readonly options; constructor(eventBus: EventBus, string>, options?: EventDispatcherOptions); dispatch(externalEvent: ExternalEvent): Promise; private dispatchWithRetry; private validateDispatchInputs; private sleep; getOptions(): Required; }