/** * Represents an immutable set that works best for a small number of elements (less than 32). * It uses bits to encode element membership efficiently. */ export declare class SmallImmutableSet { private readonly items; private readonly additionalItems; private static cache; private static create; private static empty; static getEmpty(): SmallImmutableSet; private constructor(); add(value: T, keyProvider: IDenseKeyProvider): SmallImmutableSet; has(value: T, keyProvider: IDenseKeyProvider): boolean; merge(other: SmallImmutableSet): SmallImmutableSet; intersects(other: SmallImmutableSet): boolean; equals(other: SmallImmutableSet): boolean; } export interface IDenseKeyProvider { getKey(value: T): number; } export declare const identityKeyProvider: IDenseKeyProvider; /** * Assigns values a unique incrementing key. */ export declare class DenseKeyProvider { private readonly items; getKey(value: T): number; reverseLookup(value: number): T | undefined; reverseLookupSet(set: SmallImmutableSet): T[]; keys(): IterableIterator; }