/** @packageDocumentation
 * @module Collections
 */
import { BeEvent } from "./BeEvent";
/** A standard [Set<T>](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<T> extends Set<T> {
    /** 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>;
    /** Construct a new ObservableSet.
     * @param elements Optional elements with which to populate the new set.
     */
    constructor(elements?: Iterable<T> | 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;
}
//# sourceMappingURL=ObservableSet.d.ts.map