import { VirtualTimeObj } from '../../VirtualTimeObj'; import { TEventRecord } from '../../interfaces'; export interface IRectifierOptions { virtualTimeObj: VirtualTimeObj; /** * Имя свойства ts-объектов, содержащих метку времени, * по которому нужно производить упорядочивание внутри аккумулятора. * Если не передано, используется "ts" */ fieldNameToSort?: string; /** * Callback, которому передается массив ts-объектов, упорядоченный по возрастанию * значения поля fieldNameToSort (или ts) */ sendFunction: (_rectifierItemsArray: TEventRecord[]) => number; } /** * Класс "Выпрямитель". Служит для упорядочивания событий, которые, имея метку времени своего рождения, * тем не менее могут поступать в хаотическом порядке. * * Вновь поступающие объекты расставляются в массиве-аккумуляторе по возрастанию * значения поля , * Периодически отбираются все объекты, * которые старше виртуального времени на * и передаются в функцию * * Т.о. жертвуя оперативностью на время * мы получаем восстановленную хронологию событий. */ export declare class Rectifier { options: IRectifierOptions; /** * Упорядоченный по времени массив ts-объектов */ accumulator: TEventRecord[]; /** * Временная метка последнего ts-объекта в окне или 0, если окно пусто. */ lastTs: number; virtualTimeObj: VirtualTimeObj; sendFunction: (_eventRecordsArray: TEventRecord[]) => number; readonly fieldNameToSort: string; _sendTimer: any; constructor(options: IRectifierOptions); resetRectifierSendInterval(): void; add(item: TEventRecord): void; sendItemsFromLeft(): number; /** * очистка временного окна */ clear(): void; destroy(): void; } //# sourceMappingURL=Rectifier.d.ts.map