/** * Return a copy of the set, with the item excluded. */ export declare function excluding(set: ReadonlySet, item: T): ReadonlySet; export declare const empty: ReadonlySet; /** * Return a copy of the set, with the item included. */ export declare function including(set: ReadonlySet, item: T): ReadonlySet; /** * Return a copy of the set, with the item removed it is was present, else with * it added. */ export declare function toggled(set: ReadonlySet, item: T): ReadonlySet; /** * Return the items in the set as an array. */ export declare function toArray(set: ReadonlySet): T[]; /** * Combine the items from two sets. */ export declare function union(a: ReadonlySet, b: ReadonlySet): ReadonlySet; export declare function subtraction(a: ReadonlySet, b: ReadonlySet): ReadonlySet; export declare function intersection(a: ReadonlySet, b: ReadonlySet): ReadonlySet; export declare function some(a: ReadonlySet, predicate: (item: T) => boolean): boolean; export declare class CountedSet { private readonly counts; constructor(counts?: Map); add(item: T): number; remove(item: T): number; count(item: T): number; filter(predicate: (item: T, count: number) => boolean): IterableIterator; entries(): IterableIterator<[T, number]>; copy(): CountedSet; }