export declare function doesNotThrow(promise: Promise): Promise; /** * Builds an object from a list of keys whose values are based on the key itself, * but where that value is produced asynchronously. * * This function starts by spawning a promise to generate the value for each key, * and ends when all values have been produced. * This is faster than spawning promises in sequence. */ export declare function keysToAsyncValues(keys: K[], toValue: (elem: K) => Promise): Promise>; /** * Builds an object from a list of input items. * The keys and values are derived from the input item, * but the values either need to be generated asynchronously or not at all. */ export declare function createObjectOfPromisedValues(inputs: I[], toKey: (input: I) => K, toMaybePromise: (input: I) => Promise | undefined): Promise>; export declare function nonNaN(num: number, fallback: number): number; export declare function repeat(str: string, times: number): string; export declare class Unreachable extends Error { constructor(reason: string); }