export declare function isArray(value: any): value is T[]; export declare function first(items: T[] | readonly T[]): T; export declare function last(items: T[] | readonly T[], nth?: number): T; export declare function findPrevSibling(items: T[] | readonly T[], item: T): T | undefined; export declare function findNextSibling(items: T[] | readonly T[], item: T): T | undefined; export declare function concat(a: T[] | Readonly | undefined, b: T[] | Readonly | undefined): T[]; declare type FlatArray = { done: Arr; recur: Arr extends ReadonlyArray ? FlatArray : Arr; }[Depth extends -1 ? 'done' : 'recur']; export declare function flatten(array: T, depth?: D): Array>; declare type Chunk = { done: []; recurr: [ T, ...Chunk ]; }[Size extends 0 ? 'done' : 'recurr']; export declare function chunk(items: T[], chunkSize: D): Array>; export declare const BinarySearchBias: { GREATEST_LOWER_BOUND: number; LEAST_UPPER_BOUND: number; }; declare type BinarySearchBiasType = typeof BinarySearchBias[keyof typeof BinarySearchBias]; export declare function binarySearch(needle: T, haystack: T[], compare: (a: T, b: T) => number, bias?: BinarySearchBiasType): number; export declare function binarySearchKey(array: readonly T[], key: U, keySelector: (value: T, index: number) => U, keyComparer: (a: U, b: U) => number, offset?: number): number; export {}; //# sourceMappingURL=array.d.ts.map