export type Group = { items: ITEM[]; key: string | number; group?: GROUP; groupIndex: number; }; export type SelectAllItem = { checkedCount: number; totalCount: number; groupKey: string | number; __optionSelectAll: true; }; export type CountedGroup = Omit, 'items'> & { items: Array; }; type GetItemGroupKey = (item: ITEM) => string | number | undefined; type GetItemKey = (item: ITEM) => string | number | undefined; type GetItemDisabled = (item: ITEM) => boolean | undefined; type GetGroupKey = (item: GROUP) => string | number | undefined; type SortGroups = (a: Group, b: Group) => number; export type GetGroupsResult = Group[]; export declare const defaultGroupKey = "no-group"; /** * @param items список который нужно группировать * @param getItemGroupKey признак принадлежности к группе * @param groups список групп * @param getGroupKey результат функции должен вернуть уникальный ключ группы * @param sortGroups сортировка групп * @param noGroupKey ключ группы которая создаться если item не будет принадлежать ни к одной из групп */ export declare function getGroups(items: ITEM[], getItemGroupKey: GetItemGroupKey | undefined, groups: GROUP[] | undefined, getGroupKey: GetGroupKey | undefined, sortGroups: SortGroups | undefined, noGroupKey?: string): GetGroupsResult; /** * @deprecated */ export declare function getCountedGroups(groups: GetGroupsResult, values: ITEM[] | undefined | null, selectAll: boolean, getItemKey: GetItemKey, getItemDisabled?: GetItemDisabled): CountedGroup[]; export {};