import { UmbContextBase } from '../../../libs/class-api/index.js';
import { type Observable, UmbObjectState } from '../../../libs/observable-api/index.js';
import type { UmbControllerHost } from '../../../libs/controller-api/index.js';
import type { UmbApi } from '../../../libs/extension-api/index.js';
/**
 * The base class for a store that holds an object.
 */
export declare class UmbStoreObjectBase<T> extends UmbContextBase implements UmbApi {
    protected _data: UmbObjectState<T | null>;
    constructor(host: UmbControllerHost, storeAlias: string, initialData?: T);
    /**
     * Updates the store with the given data
     * @param data - The (partial) data to update the store with
     * @memberof UmbStoreObjectBase
     */
    update(data: Partial<T>): void;
    /**
     * Returns the current state of the store
     * @memberof UmbStoreObjectBase
     */
    getState(): T | null;
    /**
     * Returns an observable of the store
     * @memberof UmbStoreObjectBase
     */
    all(): Observable<T | null>;
    /**
     * Returns an observable of a part of the store
     * @param key - The key of the part to return
     * @memberof UmbStoreObjectBase
     */
    part<Part extends keyof T>(key: Part): Observable<T[Part]>;
    /**
     * Destroys the store
     * @memberof UmbStoreObjectBase
     */
    destroy(): void;
}
