declare global { interface Array { /** * Iterates the elements through the reducer function and return first non-null/non-undefined value * @param reducer */ computeFirst(reducer: (input: T, index: number, arr: ReadonlyArray) => Result | null | undefined): Result | null | undefined; /** * Iterates the elements through the reducer function and return last non-null/non-undefined value * @param reducer */ computeLast(reducer: (input: T, index: number, arr: ReadonlyArray) => Result | null | undefined): Result | null | undefined; /** * Inserts element at a position and push the element after it forward. * * Uses `.splice` internally. May be computationally expensive. */ insert(element: T, at: number): T[]; chunk(chunkSize: number): Generator; groupBy(key: keyof T | ((getter: T) => unknown), mapper?: (element: T, index: number, array: this) => M): Map; } } export {};