export declare class Set { private _set; private _size; constructor(); /** * Adds the given value at the given key * @param {string} key [description] * @param {T} value [description] */ add(key: string | number, ...value: T[]): void; /** * Private add method * @param {string|number} key [description] * @param {T} value [description] */ private _add(key, value); /** * Gets the value at the given key * @param {string|number} key [description] * @return {T} [description] */ get(key: string | number): T[]; /** * Returns the first item in the set of items at the given key * @param {string|number} key The key to retrieve * @return {T} The first item in the set of items */ first(key: string | number): T; /** * Sets the given value at the given key * @param {string|number} key [description] * @param {T} value [description] */ set(key: string | number, value: T): void; /** * Removes the value at the given key * @param {string|number} key [description] * @return {T} [description] */ remove(key: string | number): T; /** * Pops the last item off of the set of items at the given key * @param {string|number} key The key for the set to pop * @return {T} The item popped off the end of the set */ pop(key: string | number): T; /** * Reveals the last item in the list for the given key * @param {string|number} key The key to check for * @return {T} The last item in the list */ peek(key: string | number): T; /** * Empties the set */ empty(): void; /** * The size of the set * @return {number} [description] */ size(key?: string | number): number; /** * Executes the given predicate for each item in the set * @param {Function} predicate [description] */ forEach(predicate: Function): void; /** * Iterates over each item in the set belonging to the given key * @param {string|number} key The key to iterate through * @param {Function} predicate The function to call for each item */ each(key: string | number, predicate: Function): void; /** * Returns whether the given key exists in the set * @param {string|number} key [description] */ exists(key: string | number): boolean; /** * Returns whether or not a value exists (non-null and non-undefined) at * the given key * @param {string|number} key [description] */ hasValue(key: string | number): boolean; toList(): any; /** * Returns the list as json * @return {any} A valid json object */ toJson(): any; /** * Deserializes the given json and populates the set. * @param {any} json The json to deserialize */ fromJson(json: any): void; }