export declare function getTimeMeasureUtils(maxDelay: number, fnName: string): { measureTime(fn: () => T): T; warnIfExceeded(): void; }; export declare function delay(ms: number): Promise; export declare function find(iterable: Iterable, comparator: (item: T) => boolean): T | undefined; export declare class Tuple = []> extends Array { constructor(length: number); constructor(...items: Items); static get [Symbol.species](): any; concat>(items: Tuple): Tuple<[...Items, ...AdditionalItems]>; concat>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>; concat>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>; prepend>(items: Tuple): Tuple<[...AdditionalItems, ...Items]>; prepend>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>; prepend>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>; } export declare function freezeDraftable(val: T): T; interface WeakMapEmplaceHandler { /** * Will be called to get value, if no value is currently in map. */ insert?(key: K, map: WeakMap): V; /** * Will be called to update a value, if one exists already. */ update?(previous: V, key: K, map: WeakMap): V; } interface MapEmplaceHandler { /** * Will be called to get value, if no value is currently in map. */ insert?(key: K, map: Map): V; /** * Will be called to update a value, if one exists already. */ update?(previous: V, key: K, map: Map): V; } export declare function emplace(map: Map, key: K, handler: MapEmplaceHandler): V; export declare function emplace(map: WeakMap, key: K, handler: WeakMapEmplaceHandler): V; export {};