import { ISingleEventTimeWindowConstructorOptions, SingleEventTimeWindow } from '../base/SingleEventTimeWindow'; import { ITimeWindowItem } from '../base/TimeWindow'; export interface IKeyedSingleEventTimeWindowConstructorOptions extends Omit, 'item'> { winName: string; removeEmptyIntervalMillis?: number; assignData?: (_instance: SingleEventTimeWindow, _event: ITimeWindowItem) => void; } export declare class KeyedSingleEventTimeWindow { options: IKeyedSingleEventTimeWindowConstructorOptions; hash: { [key: string]: SingleEventTimeWindow; }; data: any; _windowOptionsTemplate: ISingleEventTimeWindowConstructorOptions; _removeExpiredTimer: any; _collectGarbageTimer: any; constructor(options: IKeyedSingleEventTimeWindowConstructorOptions); /** * Добавляет событие по ключу в соответствующее временное окно. * Возвращает только что добавленное событие или null. */ add(key: string, ts: number, data: T, noChangeTs?: boolean): ITimeWindowItem | undefined; /** * Удаление из хеша всех окон, в которых нет событий */ collectGarbage(): void; /** * Возвращает временное окно по ключу. */ getWindowByKey(key: string): SingleEventTimeWindow | undefined; getStatByKey(key: string, ...args: any[]): ST | undefined; /** * Возвращает элемент item {ts, dsta} из временного окна по ключу. */ getItem(key: string): ITimeWindowItem | undefined; /** * Возвращает данные события из временного окна по ключу. * Если нет окна, или в нем нет события, вернет undefined * Нужно следить за тем, чтобы метод вызывался ПОСЛЕ добавления очередного события в окно, * для того, чтобы из окна были удалены "протухшие" события */ getItemData(key: string): T | undefined; /** * Динамическое изменение ширины временных окон. */ setWidth(widthMillis: number): void; /** * Удаление устаревших событий из окон */ removeExpired(virtualTs: number): number; has(key: string): boolean; /** * Удаление события из отслеживания */ delete(key: string): void; destroy(): void; } //# sourceMappingURL=KeyedSingleEventTimeWindow.d.ts.map