export interface MapItems { [key: string]: V; [key: number]: V; } export default class Collection { /** * * @param {MapItems} map * @param {(value: T, key: K) => U} callback * @returns {Array} */ static map(list: MapItems | T[], callback: (value: T, key: K) => U): U[]; /** * * @param {MapItems} map * @param {(value: T, key: K) => U} callback * @returns {Array} */ static mapObject(map: MapItems, callback: (value: T, key: K) => U): U[]; /** * * @param {MapItems} array * @param {(value: T, key: K) => U} callback * @returns {Array} */ static mapArray(array: T[], callback: (value: T, key: K) => U): U[]; /** * * @param {MapItems | Array} list * @param {(value: T, key: K) => (void | boolean)} callback * @returns {boolean} */ static forEach(list: MapItems | T[], callback: (value: T, key: K) => void | boolean): boolean; /** * * @param {MapItems} map * @param {(value: T, key: K) => U} callback * @returns {Array} */ static forEachObject(map: MapItems, callback: (value: T, key: K) => boolean | any): boolean; /** * * @param {Array} map * @param {(value: T, key: K) => (void | boolean)} callback * @returns {boolean} */ static forEachArray(array: T[], callback: (value: T, key: K) => void | boolean): boolean; }