import type { UmbTreeItemModel, UmbTreeRootModel } from '../types.js'; import type { UmbTreeStore } from './tree-store.interface.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 } from '../../repository/index.js'; import type { UmbControllerHost } from '../../../../libs/controller-api/index.js'; import type { UmbApi } from '../../../../libs/extension-api/index.js'; import type { UmbContextToken } from '../../../../libs/context-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 _init: Promise; protected _treeStore?: UmbTreeStore; 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 * @param {(string | UmbContextToken | undefined)} treeStoreContextAlias - The context alias for the tree store, if any * @memberof UmbTreeRepositoryBase */ constructor(host: UmbControllerHost, treeSourceConstructor: UmbTreeDataSourceConstructor, treeStoreContextAlias?: string | UmbContextToken); /** * Request the tree root item * @returns {*} * @memberof UmbTreeRepositoryBase */ abstract requestTreeRoot(): Promise>; /** * Requests root items of a tree * @param args * @returns {*} * @memberof UmbTreeRepositoryBase */ requestTreeRootItems(args: TreeRootItemsRequestArgsType): Promise<{ data: import("../../repository/index.js").UmbTargetPagedModel | undefined; error: Error | import("../../resources/umb-error.js").UmbApiError | import("../../resources/umb-error.js").UmbCancelError | import("../../resources/umb-error.js").UmbError | undefined; asObservable: () => import("rxjs").Observable | undefined; }>; /** * Requests tree items of a given parent * @param {(string | null)} parentUnique * @param args * @returns {*} * @memberof UmbTreeRepositoryBase */ requestTreeItemsOf(args: TreeChildrenOfRequestArgsType): Promise<{ data: import("../../repository/index.js").UmbTargetPagedModel | undefined; error: Error | import("../../resources/umb-error.js").UmbApiError | import("../../resources/umb-error.js").UmbCancelError | import("../../resources/umb-error.js").UmbError | undefined; asObservable: () => import("rxjs").Observable | undefined; }>; /** * Requests ancestors of a given item * @param {UmbTreeAncestorsOfRequestArgs} args * @returns {*} * @memberof UmbTreeRepositoryBase */ requestTreeItemAncestors(args: TreeAncestorsOfRequestArgsType): Promise<{ data: TreeItemType[] | undefined; error: any; }>; /** * Returns a promise with an observable of tree root items * @returns {*} * @memberof UmbTreeRepositoryBase * @deprecated Use `requestTreeRootItems` instead. This method requires the tree store to be available, which is not always the case. It will be removed in Umbraco 18. */ rootTreeItems(): Promise>; /** * Returns a promise with an observable of children items of a given parent * @param {(string | null)} parentUnique * @returns {*} * @memberof UmbTreeRepositoryBase * @deprecated Use `requestTreeItemsOf` instead. This method requires the tree store to be available, which is not always the case. It will be removed in Umbraco 18. */ treeItemsOf(parentUnique: string | null): Promise>; }