import type { DirectorySyncEvent, IDirectoryConfig, Storable, CronLock, IWebhookEventsLogger, JacksonOptionWithRequiredLogger } from '../../typings'; declare enum EventStatus { PENDING = "PENDING", FAILED = "FAILED", PROCESSING = "PROCESSING" } interface QueuedEvent { event: DirectorySyncEvent; id: string; retry_count: number; status: EventStatus; created_at: string; } interface DirectoryEventsParams { opts: JacksonOptionWithRequiredLogger; eventStore: Storable; eventLock: CronLock; directories: IDirectoryConfig; webhookLogs: IWebhookEventsLogger; } export declare class EventProcessor { private eventStore; private eventLock; private opts; private directories; private webhookLogs; private cronInterval; constructor({ opts, eventStore, eventLock, directories, webhookLogs }: DirectoryEventsParams); push(event: DirectorySyncEvent): Promise; private _process; process(): Promise; fetchNextBatch(offset: number, limit: number): Promise; private send; private delete; private markAsFailed; private logWebhookEvent; private notifyAllEventsFailed; scheduleWorker(): Promise; } export {};