import { PushServerResponse } from "../models/PushServerResponse"; import { CallbackClientEventReceiver } from "../models/callbacks/ClientEventReceiver"; import { PushClientStorageService } from "../storages/PushClientStorageService"; import { PushClientOffsetItem } from "../entities/PushClientEntity"; import { Logger } from "../utils/LoggerUtil"; import { IServerEventReceiver } from "../models/callbacks/ServerEventReceiver"; export declare const defaultEventPoolSize = 1024; /** * class options */ export interface EventPoolOptions { maxSize: number; } /** * define client item type */ export type EventPoolClientItem = { eventReceiver: CallbackClientEventReceiver | null; events: Array; offset: PushClientOffsetItem; }; export declare const defaultEventPoolClientItem: { eventReceiver: null; events: never[]; offset: { minOffset: number; maxOffset: number; }; }; /** * @class */ export declare class EventPool implements IServerEventReceiver { /** * options * @protected */ protected options: EventPoolOptions; /** * last offset * @protected */ protected pushClientStorageService: PushClientStorageService; /** * @protected */ protected offsetFlusherInterval: NodeJS.Timeout | number | undefined; /** * - key : channel * - value : {EventPoolClientItem} * @protected */ protected clientItems: { [key: string]: EventPoolClientItem; }; /** * log */ log: Logger; constructor(options: EventPoolOptions); /** * destroy */ destroy(): void; /** * set client receiver function address * @param channel {string} * @param callback {CallbackClientEventReceiver} * @returns {void} */ setClientEventReceiver(channel: string, callback: CallbackClientEventReceiver): void; /** * @param channel {string} * @returns {Array} */ getEvents(channel: string): Array; /** * receive event * @implements * * @param event {PushServerResponse} * @param ackCallback {( ack : any ) => void} * @returns {void} */ serverEventReceiver(event: PushServerResponse, ackCallback?: (ack: any) => void): void; /** * add event * * @param event {PushServerResponse} * @returns {void} */ addEvent(event: PushServerResponse): void; /** * get earliest/min offset in memory * * @param channel {string} * @returns { number } */ getMinOffset(channel: string): number; /** * get latest/max Offset in memory * * @param channel {string} * @returns { number } */ getMaxOffset(channel: string): number; /** * load lastOffset/maxOffset from local database * * @param channel {string} * @returns {Promise< number >} */ loadOffset(channel: string): Promise; /** * start offset flusher thread * * @protected */ protected startOffsetFlusher(): void; /** * initialize client item * @param channel {string} * @returns {void} * @private */ private initClientItemIfNeeded; } //# sourceMappingURL=EventPool.d.ts.map