export declare class AssociateBy { /** * Returns a map consisting of the elements mapped by the given `keySelector`. * * @param {(value: T) => Promise | K} keySelector * @returns {Promise>} */ associateBy(keySelector: (value: T) => Promise | K): Promise>; /** * Returns a map consisting of the elements indexed by the given `key`. * * @param {K} key * @returns {Map} */ associateBy>(key: K): Promise[K], T>>; /** * Returns a map consisting of the elements mapped by the given `keySelector`. The value * is transformed into another value by the `valueTransformer`. * * @param {(value: T) => Promise | K} keySelector * @param {(value: T) => Promise | V} valueTransformer * @returns {Map} */ associateBy(keySelector: (value: T) => Promise | K, valueTransformer: (value: T) => Promise | V): Promise>; /** * Returns a map consisting of the elements indexed by the given `key`. The value * is transformed into another value by the `valueTransformer`. * * @param {K} key * @param {(value: T) => Promise | V} valueTransformer * @returns {Map} */ associateBy, V>(key: K, valueTransformer: (value: T) => Promise | V): Promise[K], V>>; }