/** @packageDocumentation * @module Collections */ import { BeEvent } from "./BeEvent"; /** A standard [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) that emits events when its contents change. * @public */ export declare class ObservableSet extends Set { /** Emitted after `item` is added to this set. */ readonly onAdded: BeEvent<(item: T) => void>; /** Emitted after `item` is deleted from this set. */ readonly onDeleted: BeEvent<(item: T) => void>; /** Emitted after this set's contents are cleared. */ readonly onCleared: BeEvent<() => void>; /** Emitted after multiple items are added to this set via [[addAll]]. */ readonly onBatchAdded: BeEvent<() => void>; /** Emitted after multiple items are deleted from this set via [[deleteAll]]. */ readonly onBatchDeleted: BeEvent<() => void>; /** Construct a new ObservableSet. * @param elements Optional elements with which to populate the new set. */ constructor(elements?: Iterable | undefined); /** Invokes [Set.delete](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/delete), raising * the [[onDeleted]] event if the item was removed from the set. */ delete(item: T): boolean; /** If this set is not already empty, invokes [Set.clear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/clear) * and raises the [[onCleared]] event. */ clear(): void; /** Add multiple items to the set, raising [[onBatchAdded]] only once after all items are added. * This is more efficient than calling [[add]] in a loop when listeners need not be notified of each individual addition. * @param items The items to add. * @returns The number of items that were actually added (i.e., were not already present). */ addAll(items: Iterable): number; /** Delete multiple items from the set, raising [[onBatchDeleted]] only once after all items are deleted. * This is more efficient than calling [[delete]] in a loop when listeners need not be notified of each individual deletion. * @param items The items to delete. * @returns The number of items that were actually deleted (i.e., were present in the set). */ deleteAll(items: Iterable): number; } //# sourceMappingURL=ObservableSet.d.ts.map