///
import { EventEmitter } from "events";
/**
* Creates a promise that resolves after a delay
*
* @param delayMS the length of time to delay in milliseconds.
*/
export declare function Delay(delayMS: number): Promise;
/**
* Asynchronously waits for the predicate condition to turn false, with a delay between checks
* @param predicate - a fn that returns a boolean
* @param delay - number of milliseconds to async delay between checks.
*/
export declare function While(predicate: () => boolean, delay?: number): Promise;
/**
* Asynchronously waits for the predicate condition to turn true, with a delay between checks
* @param predicate - a fn that returns a boolean
* @param delay - number of milliseconds to async delay between checks.
*/
export declare function Until(predicate: () => boolean, delay?: number): Promise;
/**
* An async wrapper for waiting for an event to trigger once
* @param emitter - an event emitter
* @param event - the name of the event to wait for.
*/
export declare function When(emitter: EventEmitter, successEvent?: string, errorEvent?: string): Promise;
export declare function Async(fn: () => T, msec?: number): Promise;
export declare function Timeout(p: Promise, msec: number): Promise;