import { DeltaMapSettings, IsModified, MapDelta } from './types'; export declare class DeltaMap extends Map { private deltaSubject$; delta$: import("rxjs").Observable>; private added; private deleted; private modified; private existedBeforeDelta?; private publishEmpty; private publish; private copyAll; protected isUpdated?: IsModified; constructor(); constructor(entries: Iterable>); constructor(settings?: DeltaMapSettings); constructor(entries: Iterable>, settings?: DeltaMapSettings); /** * Process constructor content, can be overriden and extended in subclasses */ protected initializeContent(entries: Iterable): void; /** * Process constructor settings, can be overriden and extended in subclasses */ protected initializeSettings(settings: DeltaMapSettings): void; /** * Publish modification to delta$ if there are changes or if it is the first time called. */ protected publishDelta(): void; /** * @returns _true_ if the ObservableMap _delta$_ has subscribers */ get observed(): boolean; /** * Pauses and combines all delta updates until _resumeDelta_ is called. */ pauseDelta(): void; /** * Publishes all pending _added_, _modified_ or _deleted_ entries if there are any. */ resumeDelta(): void; /** * Return current value of the delta */ getDelta(): MapDelta; /** * Clears the current delta without publishing updates to subscribers. * * WARNING: This method can mess up publication integrity, * only use in DeltaMaps without subscriptions. */ clearDelta(): void; /** * Adds or modifies an entry and notifies changes through _delta$_. * * If an existing entry is the same according to the _compare_ function, nothing is changed * @override */ set(id: K, value: V): any; /** * _set_ delta logic. * Determines if it is an _add_ or a _modify_ and updates the delta. * Can be extended and/or overridden in subclasses */ protected doSet(id: K, value: V): void; /** * Deletes an entry and notifies deletions through _delta$_ if the entry exists. * @override */ delete(id: K): boolean; /** * _delete_ delta logic. * Determines if it exists and updates the delta. * Can be extended and/or overridden in subclasses */ protected doDelete(id: K): boolean; /** * Deletes multiple entries at once and notifies changes through _delta$_. */ deleteMultiple(entrieIds: Iterable): void; /** * Clears all entries and notifies deletions through _delta$_. * @override */ clear(): any; /** * Clears any remaining entries and completes the delta$ observable */ close(): void; } //# sourceMappingURL=delta-map.observable.d.ts.map