export declare class ArrayHelper { static distinct(items: T[]): T[]; static distinctBy(items: T[], keyFn: (elem: T) => unknown): T[]; static intersect(arrays: T[][]): T[]; /** * Splits `items` into sequential chunks of at most `size` elements. * If `size < 1`, returns a single chunk containing all items. */ static chunk(items: T[], size: number): T[][]; static assertHasValue(value: T | null | undefined): value is T; /** * Find position ("from" and "to" indexes) of the element that was moved inside array (only one element should be moved) */ static findMovedElement(initial: unknown[], modified: unknown[]): { from: number; to: number; } | undefined; static moveArrayItem(arr: ReadonlyArray, from: number, to: number): T[]; static replaceArrayItem(arr: T[], originalItem: T, newItem: T): T[]; static sortArray(array: Array | ReadonlyArray, propertyFunc: (elem: T) => unknown): T[]; static sortArrayDescending(array: T[], propertyFunc: (elem: T) => unknown): T[]; static groupBy(array: T[], keyResolver: (elem: T) => string): Record; static repeat(itemFn: (i: number) => T, length: number): T[]; static areEqual(array1?: T[] | null, array2?: T[] | null): boolean; private static sortArrayInternal; }