import TreeCollection from 'bloko/common/tree/treeCollection'; import type { ModelData, WalkCallback, AdditionalDefault } from 'bloko/common/tree/types'; import { IdCollectionPredicate, TreeFilter } from 'bloko/common/tree/types'; /** * Рекурсивно проходит по списку моделей, применяет к каждой модели переданную функцию. */ declare const walk: (tree: ModelData[], callback: WalkCallback, parents?: ModelData[] | undefined) => void; /** * Возвращает коллекцию, созданную из дерева. * @param {Array.} tree * @param {WalkCallback} [callback] Функция, вызываемая на каждом элементе. * @returns {TreeCollection} */ declare const fromTree: (tree: ModelData[], callback?: WalkCallback | undefined) => TreeCollection; /** * Возвращает элементы из списка, родители которых отсутствуют в этом же списке. * Полезно для определения минимального набора выбранных элементов (если выбран родитель * целиком, игнорируем его дочерние элементы). * @param {TreeCollection} collection * @param {Array.} ids * @param {Array.} [excluded] * @returns {Array.} */ declare const getIdsWithNoParentsInSameList: (collection: TreeCollection, ids: string[], excluded?: string[]) => string[]; /** * Возвращает хэш, ключи в котором — ID из списка, имеющие потомков. * @param {TreeCollection} collection * @param {Array.} ids * @returns {Object} */ declare const getParentsHashMap: (collection: TreeCollection, ids: string[]) => Record; /** * Возвращает дерево, состоящее только из элементов с указанными id и всех их предков. * @param {TreeCollection} collection * @param {Array.} ids * @returns {Array.} */ declare const filterTreeByIdsWithParents: (collection: TreeCollection, ids: string[]) => ModelData[]; /** * Возвращает только те ID, которые присутствуют в коллекции, и логирует ошибки. * @param {TreeCollection} collection * @param {Array.} ids * @returns {Array} */ declare const filterMissingIds: (collection: TreeCollection, ids: string[]) => string[]; /** * Возвращает ID только тех элементов, у которых нет потомков. * @param {TreeCollection} collection * @param {Array.} ids * @returns {Array.} */ declare const filterParents: (collection: TreeCollection, ids: string[]) => string[]; /** * Возвращает ID только тех элементов, которые можно выбрать в рамках опции singleCategory. * @param {TreeCollection} collection * @param {Array.} selectedIds * @param {Array.} newIds * @returns {Array.} */ declare const filterSingleCategory: (collection: TreeCollection, selectedIds: Set, newIds: string[]) => string[]; /** * Возвращает новую коллекцию, содержащую элементы, для которых `filterFunction` вернула true. * Если заматчился дочерний элемент, к результатам добавляются его родители до самого верха. * Если заматчился родитель, к результатам НЕ добавляются его дочерние элементы (кроме тех, * что тоже заматчились). */ declare const filterWithParents: TreeFilter; /** * Возвращает новую коллекцию, содержащую уникальные элементы самого нижнего уровня, * для которых `filterFunction` вернула true (плоский список). */ declare const filterUniqueLeavesOnly: TreeFilter; declare const isNotLeaf: IdCollectionPredicate; declare const removeExcludedFromSelected: (selected: string[], excluded: string[]) => [string[], string[]]; declare const narrowDownExcludedFromChildrenToParents: (collection: TreeCollection, excluded: string[]) => string[]; declare const extendExcludedFromParentsToChildren: (collection: TreeCollection, selected: string[], excluded: string[]) => string[]; export { walk, fromTree, getParentsHashMap, getIdsWithNoParentsInSameList, filterTreeByIdsWithParents, filterMissingIds, filterParents, filterSingleCategory, filterWithParents, filterUniqueLeavesOnly, isNotLeaf, extendExcludedFromParentsToChildren, narrowDownExcludedFromChildrenToParents, removeExcludedFromSelected, };