You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					47 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					47 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Mnemonist MultiMap Typings
							 | 
						||
| 
								 | 
							
								 * ===========================
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface MultiMap<K, V, C extends V[] | Set<V> = V[]> extends Iterable<[K, V]> {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Members
							 | 
						||
| 
								 | 
							
								  dimension: number;
							 | 
						||
| 
								 | 
							
								  size: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Methods
							 | 
						||
| 
								 | 
							
								  clear(): void;
							 | 
						||
| 
								 | 
							
								  set(key: K, value: V): this;
							 | 
						||
| 
								 | 
							
								  delete(key: K): boolean;
							 | 
						||
| 
								 | 
							
								  remove(key: K, value: V): boolean;
							 | 
						||
| 
								 | 
							
								  has(key: K): boolean;
							 | 
						||
| 
								 | 
							
								  get(key: K): C | undefined;
							 | 
						||
| 
								 | 
							
								  multiplicity(key: K): number;
							 | 
						||
| 
								 | 
							
								  forEach(callback: (value: V, key: K, map: this) => void, scope?: any): void;
							 | 
						||
| 
								 | 
							
								  forEachAssociation(callback: (value: C, key: K, map: this) => void, scope?: any): void;
							 | 
						||
| 
								 | 
							
								  keys(): IterableIterator<K>;
							 | 
						||
| 
								 | 
							
								  values(): IterableIterator<V>;
							 | 
						||
| 
								 | 
							
								  entries(): IterableIterator<[K, V]>;
							 | 
						||
| 
								 | 
							
								  containers(): IterableIterator<C>;
							 | 
						||
| 
								 | 
							
								  associations(): IterableIterator<[K, C]>;
							 | 
						||
| 
								 | 
							
								  [Symbol.iterator](): IterableIterator<[K, V]>;
							 | 
						||
| 
								 | 
							
								  inspect(): any;
							 | 
						||
| 
								 | 
							
								  toJSON(): any;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface MultiMapConstructor {
							 | 
						||
| 
								 | 
							
								  new <K, V>(container: SetConstructor): MultiMap<K, V, Set<V>>;
							 | 
						||
| 
								 | 
							
								  new <K, V>(container?: ArrayConstructor): MultiMap<K, V, V[]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  from<K, V>(
							 | 
						||
| 
								 | 
							
								    iterable: Iterable<[K, V]> | {[key: string]: V},
							 | 
						||
| 
								 | 
							
								    Container: SetConstructor
							 | 
						||
| 
								 | 
							
								  ): MultiMap<K, V, Set<V>>;
							 | 
						||
| 
								 | 
							
								  from<K, V>(
							 | 
						||
| 
								 | 
							
								    iterable: Iterable<[K, V]> | {[key: string]: V},
							 | 
						||
| 
								 | 
							
								    Container?: ArrayConstructor
							 | 
						||
| 
								 | 
							
								  ): MultiMap<K, V, V[]>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare const MultiMap: MultiMapConstructor;
							 | 
						||
| 
								 | 
							
								export default MultiMap;
							 |