export {}; declare global { type SortDirection = 'ASC' | 'DESC'; interface GroupItem { key: TKey; values: T[]; } interface Array { take(count: number, skip?: number): Array; add(...items: T[]): Array; removeBy(predicate: (value: T) => boolean): Array; sumBy(fn: (value: T, index: number) => number, initialValue?: number): number; sortBy(fn: (value: T) => TVal, direction?: 'ASC' | 'DESC'): Array; maxBy(fn: (value: T) => number): number; findOrThrow(predicate: (value: T) => boolean): T; toRecord(fn: (value: T) => [K, V]): Record; groupBy(keySelector: (item: T, index: number) => TKey): GroupItem[]; } }