import { Observable } from "rxjs"; export interface ObservableSet = Iterable> extends Set { add(value: T): this; addAll: (...items: T[]) => this; clear(): void; delete(value: T): boolean; deleteAll: (...items: T[]) => this; deleteDifference: (...items: T[]) => this; difference(other: ReadonlySetLike): ObservableSet; intersection(other: ReadonlySetLike): ObservableSet; filter: (predicate: (item: T, index?: number) => boolean) => ObservableSet; resetTo: (...items: T[]) => this; symmetricDifference(other: ReadonlySetLike): ObservableSet; union(other: ReadonlySetLike): ObservableSet; readonly add$: Observable; readonly addAll$: Observable; readonly delete$: Observable; readonly deleteAll$: Observable; readonly values$: Observable; readonly clear$: Observable; readonly change$: Observable; }