///
import EventEmitter from 'events';
import { ICommonConfig, IStreamLike } from './interfaces';
export interface IVirtualTimeStat {
arr: [number, number][];
interval: number;
maxNumberOfItems: number;
speed: number;
}
export declare class VirtualTimeObj {
commonConfig: ICommonConfig;
realStartTs: number;
virtualStartTs: number;
runningRealTime: {
prevTs: number;
expectedTimeFront: number;
millis: number;
};
loopNumber: number;
isCurrentTime: boolean;
locked: boolean;
streams: IStreamLike[];
timeFront: number;
prevVirtualDateNumber: number;
prevVirtualHourNumber: number;
stat: IVirtualTimeStat;
_frontUpdateTimer: any;
_speedCalcTimer: any;
ee: EventEmitter;
constructor(commonConfig: ICommonConfig);
_updateRunningTime(): void;
_timeFrontLoop(): void;
_startCyclicSpeedCalc(): void;
reset(): void;
startUpInfo(): void;
start(): Promise;
hardStop(): void;
setNextTimeFront(): [boolean, number];
_loopIfNeed(): void;
_detectDayChange(): void;
_detectHourChange(): void;
get totalSpeed(): number;
get lastSpeed(): number;
registerStream(stream: IStreamLike): void;
lock(): void;
unLock(): void;
get virtualTs(): number;
get virtualTimeString(): string;
get virtualTimeISO(): string | null;
get virtualStartTimeISO(): string | null;
get realStartTimeISO(): string | null;
}
export declare const getVirtualTimeObj: (commonConfig: ICommonConfig) => Promise;
//# sourceMappingURL=VirtualTimeObj.d.ts.map