import type { UmbStore } from './store.interface.js';
import type { UmbControllerHost } from '../../../libs/controller-api/index.js';
import type { UmbApi } from '../../../libs/extension-api/index.js';
import type { UmbArrayState } from '../../../libs/observable-api/index.js';
import { UmbContextBase } from '../../../libs/class-api/index.js';
export declare class UmbStoreBase<StoreItemType = any> extends UmbContextBase implements UmbStore<StoreItemType>, UmbApi {
    protected _data: UmbArrayState<StoreItemType>;
    constructor(host: UmbControllerHost, storeAlias: string, data: UmbArrayState<StoreItemType>);
    /**
     * Append an item to the store
     * @param {StoreItemType} item
     * @memberof UmbStoreBase
     */
    append(item: StoreItemType): void;
    /**
     * Appends multiple items to the store
     * @param {Array<StoreItemType>} items
     * @memberof UmbStoreBase
     */
    appendItems(items: Array<StoreItemType>): void;
    /**
     * Updates an item in the store
     * @param {string} unique
     * @param {Partial<StoreItemType>} data
     * @memberof UmbStoreBase
     */
    updateItem(unique: string, data: Partial<StoreItemType>): void;
    /**
     * Removes an item from the store
     * @param {string} unique
     * @memberof UmbStoreBase
     */
    removeItem(unique: string): void;
    /**
     * Removes multiple items in the store with the given uniques
     * @param {string[]} uniques
     * @memberof UmbStoreBase
     */
    removeItems(uniques: Array<string>): void;
    /**
     * Returns an array of items with the given uniques
     * @param {string[]} uniques
     * @returns {Array<StoreItemType>}
     * @memberof UmbStoreBase
     */
    getItems(uniques: Array<string>): Array<StoreItemType>;
    /**
     * Returns an observable of the entire store
     * @memberof UmbStoreBase
     */
    all(): import("rxjs").Observable<StoreItemType[]>;
}
