import type { UmbTreeItemModel, UmbTreeRootModel } from '../types.js'; import type { UmbTreeRepository } from './tree-repository.interface.js'; import type { UmbTreeDataSource, UmbTreeDataSourceConstructor } from './tree-data-source.interface.js'; import type { UmbTreeAncestorsOfRequestArgs, UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from './types.js'; import { UmbRepositoryBase, type UmbRepositoryResponse, type UmbRepositoryResponseWithAsObservable, type UmbTargetPagedModel } from '../../repository/index.js'; import type { UmbControllerHost } from '../../../../libs/controller-api/index.js'; import type { UmbApi } from '../../../../libs/extension-api/index.js'; /** * Base class for a tree repository. * @abstract * @class UmbTreeRepositoryBase * @augments {UmbRepositoryBase} * @implements {UmbTreeRepository} * @implements {UmbApi} * @template TreeItemType * @template TreeRootType */ export declare abstract class UmbTreeRepositoryBase extends UmbRepositoryBase implements UmbTreeRepository, UmbApi { protected _treeSource: UmbTreeDataSource; /** * Creates an instance of UmbTreeRepositoryBase. * @param {UmbControllerHost} host - The controller host for this controller to be appended to * @param {UmbTreeDataSourceConstructor} treeSourceConstructor - The constructor for the tree data source * @memberof UmbTreeRepositoryBase */ constructor(host: UmbControllerHost, treeSourceConstructor: UmbTreeDataSourceConstructor); /** * Request the tree root item * @returns {Promise>} * @memberof UmbTreeRepositoryBase */ abstract requestTreeRoot(): Promise>; /** * Requests root items of a tree * @param {TreeRootItemsRequestArgsType} args - The request arguments * @returns {Promise, Array>>} The root items of the tree * @memberof UmbTreeRepositoryBase */ requestTreeRootItems(args: TreeRootItemsRequestArgsType): Promise, Array>>; /** * Requests tree items of a given parent * @param {TreeChildrenOfRequestArgsType} args - The request arguments * @returns {Promise, Array>>} The tree items of the given parent * @memberof UmbTreeRepositoryBase */ requestTreeItemsOf(args: TreeChildrenOfRequestArgsType): Promise, Array>>; /** * Requests ancestors of a given item * @param {UmbTreeAncestorsOfRequestArgs} args - The request arguments * @returns {Promise>>} The ancestors of the given item * @memberof UmbTreeRepositoryBase */ requestTreeItemAncestors(args: TreeAncestorsOfRequestArgsType): Promise<{ data: TreeItemType[] | undefined; error: any; }>; }