import TreeCollection from 'bloko/common/tree/treeCollection'; export declare enum CoreField { Id = "id", Text = "text", Additional = "additional" } export type AdditionalDefault = Record; export interface TreeModel { [CoreField.Id]: string; [CoreField.Text]: string; [CoreField.Additional]?: A; } export interface ModelData extends TreeModel { items?: ModelData[]; [x: string]: unknown; } /** * Коллбек, вызываемый на каждой модели при обходе дерева. */ export interface WalkCallback { ( /** Модель текущего узла. */ item: TreeModel, /** Массив моделей родителей от ближнего к дальнему. */ currentParents: TreeModel[]): void; } export interface ModelPredicate { (item: TreeModel): boolean; } export interface IdCollectionPredicate { (id: string, collection: TreeCollection): boolean; } export interface IdPredicate { (id: string): boolean; } export interface TreeFilter { (collection: TreeCollection, filterFunction: ModelPredicate): TreeCollection; }