import type { BiMultiMapBase } from '@rimbu/bimultimap/custom'; import type { HashBiMultiMap } from '@rimbu/bimultimap'; import type { HashMultiMapHashValue } from '@rimbu/multimap'; export namespace BiMultiMapHashed { /** * The HashBiMultiMap creators interface that exposes factory methods and context helpers * for hashed BiMultiMap instances. */ export interface Creators extends BiMultiMapBase.Factory { /** * Returns a new HashBiMultiMap context instance based on the given `options`. * @typeparam UK - the upper key type for which the context can create instances * @typeparam UV - the upper value type for which the context can create instances * @param options - (optional) an object containing the following properties:
* - keyValueMultiMapContext: (optional) the MultiMap context to use for key to value multimaps
* - valueKeyMultiMapContext: (optional) the MultiMap context to use for value to key multimaps */ createContext(options?: { keyValueMultiMapContext?: HashMultiMapHashValue.Context; valueKeyMultiMapContext?: HashMultiMapHashValue.Context; }): HashBiMultiMap.Context; /** * Returns the default context for HashBiMultiMaps. * @typeparam UK - the upper key type for which the context can create instances * @typeparam UV - the upper value type for which the context can create instances */ defaultContext(): HashBiMultiMap.Context; } }