import type { Identity } from "#utils"; /** * Stores a set of objects with weak references to them, allowing them to be garbage collected. Can be iterated over, * unlike a WeakSet. * @template K - The type of the objects contained in the WeakSet */ declare class IterableWeakSet extends WeakSet { /** * @param entries - The initial entries. */ constructor(entries?: Iterable); /** * Enumerate the values. */ [Symbol.iterator](): Generator; /** * Add a value to the set. * @param value - The value to add. */ add(value: K): this; /** * Delete a value from the set. * @param value - The value to delete. */ delete(value: K): boolean; /** * Whether this set contains the given value. * @param value - The value to test. * @returns */ has(value: K): boolean; /** * Enumerate the collection. */ values(): Generator; /** * Clear all values from the set. */ clear(): void; #IterableWeakSet: true; } declare namespace IterableWeakSet { interface Any extends AnyIterableWeakSet {} interface AnyConstructor extends Identity {} } export default IterableWeakSet; declare abstract class AnyIterableWeakSet extends IterableWeakSet { constructor(...args: never); }