import { EventBase } from "./event-base"; export type BackoffOptions = { maxDelay?: number; multiplier?: number; jitter?: boolean; type: "fixed" | "exponential"; }; export interface EventProcessorOptions> { retries?: number; retryDelay?: number; backoff?: BackoffOptions; dlq?: { enabled: boolean; topic: string; }; maxParallelism?: number; processingStrategy?: EventProcessingStrategy; callbacks?: { onError?: (error: Error, event: EventBase) => void; onSuccess?: (event: EventBase) => void; onClose?: () => void; onRetry?: (error: Error, event: EventBase, attempt: number) => void; }; } export interface EventProcessingStrategy> { process(event: EventBase, handler: (event: EventBase) => Promise): Promise; }