import TreeCollection from 'bloko/common/tree/treeCollection';
import type { AdditionalDefault, IdCollectionPredicate } from 'bloko/common/tree/types';
/**
* Создаёт исключатель элементов в наборе, учитывая набор выбранных элементов (вызывать с готовыми выбранными элементами):
* — если элемент был выбран, то мы либо удаляем его из "исключенных", либо ничего не делаем;
* — во всех случаях, когда меняется статус родителя, все его дети исключаются из "исключенных";
* — если элемент "отключили", то переводим его в "исключенные", но только в том случае, если его родитель выбран
* @returns {exclude}
* @constructor
*/
declare function createTreeCollectionExcluder(_collection: TreeCollection, _checkSelectable: IdCollectionPredicate): (items: string[], excluded: Set, ids: string[]) => void;
export default createTreeCollectionExcluder;