/// <reference types="node" />
/**
 * @file Random stuff used throughout the project
 */
import { EventEmitter } from 'events';
/**
 * Convert number to hex
 */
export declare function toHex(decimal: number, evenLength?: boolean, xPrefix?: boolean): string;
/**
 * Convert number to binary
 */
export declare function toBinary(decimal: number, lengthMultipleOfFour?: boolean, gapEveryByte?: boolean, minLength?: number): string;
/**
 * Rounds a number to a certain decimal place.
 * Precision 0 by default.
 */
export declare function round(num: number, precision?: number): number;
/**
 * Returns a promise that resolves in n milliseconds
 */
export declare function wait(milliseconds: number): Promise<{}>;
/**
 * Wait until event is emitted
 * @TODO Add timeout as well if event is never emitted
 */
export declare function waitUntilEvent<T>(emitter: EventEmitter, eventName: string): () => Promise<T>;
/**
 * Takes a TypeScript enum and returns the actual list of keys.
 * Since enums have reverse lookup keys as well, this has to be done when checking for the _actual_ keys.
 */
export declare function properEnumKeys<T extends object>(enumObj: T): Array<keyof T>;
