import { Comparator, Getter, type Nullable, type Predicate } from '../types/index.js'; /** type-safe `Array.isArray` wrapper */ export declare function isArray(value: any): value is T[]; export declare function arrayCompareG(arr: ReadonlyArray | null | undefined, cond: (current: T, previous: T | null) => boolean): T | null; export declare function arrayCompare(arr: ReadonlyArray | null | undefined, absolute: boolean, cond: (i: number, t: number) => boolean): number | null; export declare function arrayMax(arr: ReadonlyArray, absolute?: boolean): number | null; export declare function arrayMin(arr: ReadonlyArray, absolute?: boolean): number | null; export declare function arrayAverage(arr: ReadonlyArray | null | undefined, absolute?: boolean): number; export declare function arrayCount(arr: ReadonlyArray | null | undefined, condition: (o: T) => boolean): number; type KeyOf = { [K in keyof T]: T[K] extends string | number ? K : never; }[(string & keyof T)]; /** @returns count of items in array per key, filtered off by predicate */ export declare function arrayCountByKey>(arr: ReadonlyArray, key: TKey, predicate?: Predicate): Record; export declare function arrayFirstResult(arr: ReadonlyArray | null | undefined, mapper: (o: T) => V | null | false): V | null | false; export declare function arraysCompare(base: ReadonlyArray | null | undefined, target: readonly T[], comparator?: Comparator): { missing: T[]; extra: T[]; diff: number; } | null; export declare function arraysCompareDistinct(base: ReadonlyArray | null | undefined, target: ReadonlyArray | null | undefined): { missing: T[]; extra: T[]; diff: number; } | null; export declare function arrayDistinct(arr: ReadonlyArray | null | undefined): T[]; export declare function normalize(arr: number[]): number[]; export declare function randomArrayItem(arr: ReadonlyArray): T | null; export declare function arraySwap(arr: T[], i1: number, i2: number): void; export declare function shuffle(arr: null | undefined, slice: any): T[]; export declare function shuffle(arr: T[], slice: false): T[]; export declare function shuffle(arr: Nullable>): T[]; export declare function shuffle(arr: Nullable>, slice: true): T[]; export declare function groupBy(arr: ReadonlyArray, grouper: (item: T) => K): Partial>; export declare function groupOneBy(arr: ReadonlyArray, grouper: (item: T) => K): Partial>; export declare function arraySplit(arr: ReadonlyArray, predicate: (t: T) => boolean): [T[], T[]]; export declare function findIndexLeast(num: number, arr: number[], sort?: boolean): number; export declare function findLastIndex(arr: Nullable>, predicate: Predicate): number; export declare function findLast(arr: Nullable>, predicate: Predicate): T | null; type NonFunction = T extends Function ? never : T; export declare function removeItem(array: T[], item: NonFunction | Predicate): T | null; export declare function arrayRepeat(factory: Getter, count?: number): T[]; export declare function chunkify(array: T[], size: number): T[][]; export {};