import { EventEmitter } from "node:stream"; import { RedisAdapter } from "@myunisoft/redis"; import { IncomerStore } from "../store/incomer.class.js"; import { Transaction, TransactionStore } from "../store/transaction.class.js"; import type { RegisteredIncomer } from "../../types/index.js"; export declare const TAKE_LEAD_BACK_SYM: unique symbol; export interface EventsServiceOptions { redis: RedisAdapter; incomerStore: IncomerStore; dispatcherTransactionStore: TransactionStore<"dispatcher">; backupDispatcherTransactionStore: TransactionStore<"dispatcher">; backupIncomerTransactionStore: TransactionStore<"incomer">; idleTime: number; } interface GetEventSharedOptions { incomerId: string; } export type GetEventByIdOptions = GetEventSharedOptions & { eventId: string; }; export type GetSentEventByIdResponse = Omit, "redisMetadata"> & { redisMetadata: { published: boolean; resolved: boolean; }; relatedTransactions: Transaction<"dispatcher">[]; }; export type GetIncomerReceivedEventsOptions = GetEventSharedOptions; export type GetIncomerReceivedEventsResponse = Omit, "redisMetadata"> & { redisMetadata: { eventTransactionId: string; resolved: boolean; }; }; export declare class EventsService extends EventEmitter { #private; idleTime: number; private incomerStore; private dispatcherTransactionStore; private backupDispatcherTransactionStore; private backupIncomerTransactionStore; constructor(opts: EventsServiceOptions); getIncomers(): Promise>; forceDispatcherTakeLead(incomers: Set, dispatcherToRemove: RegisteredIncomer): void; getEventById(opts: GetEventByIdOptions): Promise; getIncomerReceivedEvents(opts: GetIncomerReceivedEventsOptions): Promise; } export {}; //# sourceMappingURL=events.service.d.ts.map