/** * An interface for a JavaScript object that * acts a dictionary. The keys are strings. */ export type IStringDictionary = Record; /** * An interface for a JavaScript object that * acts a dictionary. The keys are numbers. */ export type INumberDictionary = Record; /** * Groups the collection into a dictionary based on the provided * group function. */ export declare function groupBy(data: readonly V[], groupFn: (element: V) => K): Partial>; export declare function groupByMap(data: V[], groupFn: (element: V) => K): Map; export declare function diffSets(before: ReadonlySet, after: ReadonlySet): { removed: T[]; added: T[]; }; export declare function diffMaps(before: Map, after: Map): { removed: V[]; added: V[]; }; /** * Computes the intersection of two sets. * * @param setA - The first set. * @param setB - The second iterable. * @returns A new set containing the elements that are in both `setA` and `setB`. */ export declare function intersection(setA: Set, setB: Iterable): Set; export declare class SetWithKey implements Set { private toKey; private _map; constructor(values: T[], toKey: (t: T) => unknown); get size(): number; add(value: T): this; delete(value: T): boolean; has(value: T): boolean; entries(): IterableIterator<[ T, T ]>; keys(): IterableIterator; values(): IterableIterator; clear(): void; forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: unknown): void; [Symbol.iterator](): IterableIterator; [Symbol.toStringTag]: string; }