import type { UmbWorkspaceDataManager } from '../data-manager/workspace-data-manager.interface.js'; import { UmbObjectState, type MappingFunction } from '../../../../libs/observable-api/index.js'; import { UmbControllerBase } from '../../../../libs/class-api/index.js'; import type { Observable } from '../../../../external/rxjs/index.js'; /** * Manages the workspace data for an entity. * @class UmbEntityWorkspaceDataManager * @augments {UmbControllerBase} * @implements {UmbWorkspaceDataManager} * @template ModelType */ export declare class UmbEntityWorkspaceDataManager extends UmbControllerBase implements UmbWorkspaceDataManager { protected readonly _persisted: UmbObjectState; protected readonly _current: UmbObjectState; /** * Observable of the persisted data * @memberof UmbEntityWorkspaceDataManager */ readonly persisted: Observable; /** * Observable of the current data * @memberof UmbEntityWorkspaceDataManager */ readonly current: Observable; protected _sortCurrentData = Partial>(persistedData: Partial, currentData: GivenType): GivenType; /** * Gets persisted data * @returns {(ModelType | undefined)} The persisted data. * @memberof UmbEntityWorkspaceDataManager */ getPersisted(): ModelType | undefined; /** * Sets the persisted data * @param {(ModelType | undefined)} data The data to persist. * @memberof UmbEntityWorkspaceDataManager */ setPersisted(data: ModelType | undefined): void; /** * Updates the persisted data * @param {Partial} partialData The partial data to merge into the persisted data. * @memberof UmbEntityWorkspaceDataManager */ updatePersisted(partialData: Partial): void; /** * Creates an observable part of the persisted data * @template ReturnType * @param {(MappingFunction)} mappingFunction Function to map the persisted data to the observable part. * @returns {Observable} The mapped observable part. * @memberof UmbEntityWorkspaceDataManager */ createObservablePartOfPersisted(mappingFunction: MappingFunction): Observable; /** * Gets the current data * @returns {(ModelType | undefined)} The current data. * @memberof UmbEntityWorkspaceDataManager */ getCurrent(): ModelType | undefined; /** * Sets the current data * @param {(ModelType | undefined)} data The data to set as current. * @memberof UmbEntityWorkspaceDataManager */ setCurrent(data: ModelType | undefined): void; /** * Updates the current data * @param {Partial} partialData - The partial data to merge into the current data. * @memberof UmbEntityWorkspaceDataManager */ updateCurrent(partialData: Partial): void; /** * Creates an observable part of the current data * @template ReturnType * @param {(MappingFunction)} mappingFunction - Maps the current data to the observed value. * @returns {Observable} An observable of the mapped value. * @memberof UmbEntityWorkspaceDataManager */ createObservablePartOfCurrent(mappingFunction: MappingFunction): Observable; /** * Checks if there are unpersisted changes * @returns {boolean} Whether the current data differs from the persisted data. * @memberof UmbEntityWorkspaceDataManager */ getHasUnpersistedChanges(): boolean; /** * Resets the current data to the persisted data * @memberof UmbEntityWorkspaceDataManager */ resetCurrent(): void; /** * Clears the data * @memberof UmbEntityWorkspaceDataManager */ clear(): void; destroy(): void; }