import type { UmbItemRepository } from './item/index.js';
import type { UmbRepositoryItemsStatus } from './types.js';
import type { UmbControllerHost } from '../../../libs/controller-api/index.js';
import { UmbControllerBase } from '../../../libs/class-api/index.js';
export declare class UmbRepositoryItemsManager<ItemType extends {
    unique: string;
}> extends UmbControllerBase {
    #private;
    repository?: UmbItemRepository<ItemType>;
    get init(): Promise<unknown>;
    uniques: import("rxjs").Observable<string[]>;
    items: import("rxjs").Observable<ItemType[]>;
    statuses: import("rxjs").Observable<UmbRepositoryItemsStatus[]>;
    /**
     * Creates an instance of UmbRepositoryItemsManager.
     * @param {UmbControllerHost} host - The host for the controller.
     * @param {string} repositoryAlias - The alias of the repository to use.
     * @memberof UmbRepositoryItemsManager
     */
    constructor(host: UmbControllerHost, repositoryAlias?: string);
    /**
     * Sets the item repository to use for this manager.
     * @param {(UmbItemRepository<ItemType> | undefined)} itemRepository - The item repository to set.
     * @memberof UmbRepositoryItemsManager
     */
    setItemRepository(itemRepository: UmbItemRepository<ItemType> | undefined): void;
    /**
     * Gets the item repository used by this manager.
     * @returns {(UmbItemRepository<ItemType> | undefined)} The item repository.
     * @memberof UmbRepositoryItemsManager
     */
    getItemRepository(): UmbItemRepository<ItemType> | undefined;
    getUniques(): Array<string>;
    setUniques(uniques: string[] | undefined): void;
    getItems(): Array<ItemType>;
    itemByUnique(unique: string): import("rxjs").Observable<ItemType | undefined>;
    /**
     * @deprecated - This is resolved by setUniques, no need to update statuses.
     * @param unique {string} - The unique identifier of the item to remove the status of.
     */
    removeStatus(unique: string): void;
    getItemByUnique(unique: string): Promise<Exclude<ItemType, undefined>>;
    destroy(): void;
}
