export declare function groupBy(array: T[], selectId: (t: T) => I): Map; export declare function compareByComparators(comparators: Array<(a: T, b: U) => number>, t: T, u: U): 0 | 1 | -1; export declare function compareByIteratees(iteratees: Array<(a: T) => I>, itemA: T, itemB: T): 0 | 1 | -1; export declare function anyIntersectionSorted(as: T[], bs: U[], comparator: (a: T, b: U) => number): boolean; export declare function uniqSorted(array: T[], comparators: Array<(a: T, b: T) => number>): T[]; export declare function updateOneSorted(items: T[], item: U, tComparator: (a: T, b: U) => number, merger: (existingItem: T, newItem: U) => T, idx?: number | undefined): { idx: number; items: T[]; }; export declare function upsertOneSorted(items: T[], item: U, tComparator: (a: T, b: U) => number, merger: (existingItem: T, newItem: U) => T, transform: (u: U, idx: number) => T, idx?: number | undefined): { idx: number; items: T[]; }; export declare function removeOneSorted(items: T[], u: U, tComparator: (a: T, u: U) => number, idx?: number | undefined): { idx: number; removedItem: T | undefined; items: T[]; }; export declare function removeManySorted(items: T[], us: U[], tComparator: (a: T, u: U) => number, currIndex?: number): { items: T[]; removedItems: T[]; idx: number; }; export declare function findSorted(items: T[], item: B, tComparator: (a: T, b: B) => number, currIndex?: number): { idx: number; item: T; } | { idx: number; item: undefined; };