///
import { EventEmitter } from 'events';
export declare class Timer extends EventEmitter {
protected cb: () => T;
protected running: Promise;
protected started: boolean;
private ticking;
protected time: number;
protected timer: number;
constructor(cb: () => T);
immediately(): any;
interval(ms: number): void;
start(ms?: number): Promise;
stop(): void;
protected delay(): Promise;
protected delayNext(): void;
private handleError(e);
private reset();
protected tick(): Promise;
readonly isRunning: boolean;
}
export declare type Timeout = Promise & {
kill(asSuccess?: boolean): void;
};
export declare function timeout(ms: number): Timeout;