type Predicate = (item: T) => boolean; type FindOptions = { wrapAround?: boolean; }; export declare function getFirstElement(array: T[]): T | undefined; export declare function findFirstElement(array: T[], predicate: Predicate): T | undefined; export declare function getLastElement(array: T[]): T | undefined; export declare function findLastElement(array: T[], predicate: Predicate): T | undefined; export declare function getPreviousElement(array: T[], currentIndex: number, { wrapAround }?: FindOptions): T | undefined; export declare function findPreviousElement(array: T[], currentIndex: number, predicate: Predicate, { wrapAround }?: FindOptions): T | undefined; export declare function getNextElement(array: T[], currentIndex: number, { wrapAround }?: FindOptions): T | undefined; export declare function findNextElement(array: T[], currentIndex: number, predicate: Predicate, { wrapAround }?: FindOptions): T | undefined; export declare function unique(list: T[], predicate?: (item: T, itemToCompared: T) => boolean): T[]; export declare function includes(list: T[], item: T, predicate?: (item: T, itemToCompared: T) => boolean): boolean; export declare function hasExactSameValues(listA: T[], listB: T[], predicate?: (item: T, itemToCompared: T) => boolean): boolean; export {};