import BeeQueue from 'bee-queue'; import { FastifyLoggerInstance } from 'fastify'; import { Db } from 'mongodb'; import { CreatedEventContext, CreatedEventHandler, DeletedEventContext, DeletedEventHandler, UpdatedEventContext, UpdatedEventHandler } from '../types'; export declare const CRUD_EVENTS: readonly ["created", "updated", "deleted"]; export declare type CRUDEvent = 'created' | 'updated' | 'deleted'; declare type GenericModule = { default: (ctx: any) => any; broadcast?: boolean; }; export declare type CRUDEventMap = { created?: { default: CreatedEventHandler; broadcast?: boolean; }; deleted?: { default: DeletedEventHandler; broadcast?: boolean; }; updated?: { default: UpdatedEventHandler; broadcast?: boolean; }; }; export declare type EventCtxMap = { created: CreatedEventContext; deleted: DeletedEventContext; updated: UpdatedEventContext; }; export declare type EmitData = Omit; export declare class CRUDEventsManager { private eventDefs; private db; private _log; emitMap: Map>; constructor(eventDefs: Record, db: Db, _log: FastifyLoggerInstance); emit(collection: string, event: T, data: EmitData): Promise>> | undefined; setupLocalHandlers(): void; close(): Promise; } export {};