import type { UmbTreeItemModel, UmbTreeRootModel } from '../types.js'; import type { UmbTreeChildrenOfRequestArgs, UmbTreeAncestorsOfRequestArgs, UmbTreeRootItemsRequestArgs } from './types.js'; import type { Observable } from '../../../../external/rxjs/index.js'; import type { UmbApi } from '../../../../libs/extension-api/index.js'; import type { UmbRepositoryResponse, UmbRepositoryResponseWithAsObservable, UmbTargetPagedModel } from '../../repository/index.js'; /** * Interface for a tree repository. * @interface UmbTreeRepository * @augments {UmbApi} * @template TreeItemType * @template TreeRootType */ export interface UmbTreeRepository extends UmbApi { /** * Requests the root of the tree. * @memberof UmbTreeRepository */ requestTreeRoot: () => Promise>; /** * Requests the root items of the tree. * @param {UmbTreeRootItemsRequestArgs} args * @memberof UmbTreeRepository */ requestTreeRootItems: (args: TreeRootItemsRequestArgsType) => Promise, TreeItemType[]>>; /** * Requests the children of the given parent item. * @param {UmbTreeChildrenOfRequestArgs} args * @memberof UmbTreeRepository */ requestTreeItemsOf: (args: TreeChildrenOfRequestArgsType) => Promise, TreeItemType[]>>; /** * Requests the ancestors of the given item. * @param {UmbTreeAncestorsOfRequestArgs} args * @memberof UmbTreeRepository */ requestTreeItemAncestors: (args: TreeAncestorsOfRequestArgsType) => Promise>; /** * Returns an observable of the root items of the tree. * @memberof UmbTreeRepository * @deprecated Use `requestTreeRootItems` instead. It will be removed in Umbraco 18. */ rootTreeItems?: () => Promise>; /** * Returns an observable of the children of the given parent item. * @param {(string | null)} parentUnique * @memberof UmbTreeRepository * @deprecated Use `requestTreeItemsOf` instead. It will be removed in Umbraco 18. */ treeItemsOf?: (parentUnique: string | null) => Promise>; }