import type { HashMap } from '@rimbu/hashed'; import type { SortedMap } from '@rimbu/sorted'; import type { RMap } from '@rimbu/collection-types'; import type { ArrowValuedGraph, ArrowValuedGraphHashed, ArrowValuedGraphSorted, } from '@rimbu/graph'; import type { ValuedGraphBase } from '@rimbu/graph/custom'; export interface ArrowValuedGraphCreators { /** * Returns a new ArrowValuedGraph context instance based on the given `options`. * @typeparam UN - the upper node type for which the context can create instances * @param options - an object containing the following properties:
* - linkMapContext: the map context to use to maintain link maps
* - linkConnectionsContext: the map context to use to maintain link connection maps */ createContext(options: { linkMapContext: RMap.Context; linkConnectionsContext: RMap.Context; }): ArrowValuedGraph.Context; } export interface ArrowValuedGraphHashedCreators extends ValuedGraphBase.Factory { /** * Returns a new ArrowValuedGraphHashed context instance based on the given `options`. * @typeparam UN - the upper node type for which the context can create instances * @param options - (optional) an object containing the following properties:
* - linkMapContext: (optional) the map context to use to maintain link maps
* - linkConnectionsContext: (optional) the map context to use to maintain link connection maps */ createContext(options?: { linkMapContext?: HashMap.Context; linkConnectionsContext?: HashMap.Context; }): ArrowValuedGraphHashed.Context; /** * Returns the default context for this type of graph. * @typeparam UN - the upper node type that the context should accept */ defaultContext(): ArrowValuedGraphHashed.Context; } export interface ArrowValuedGraphSortedCreators extends ValuedGraphBase.Factory { /** * Returns a new ArrowValuedGraphSorted context instance based on the given `options`. * @typeparam UN - the upper node type for which the context can create instances * @param options - (optional) an object containing the following properties:
* - linkMapContext: (optional) the map context to use to maintain link maps
* - linkConnectionsContext: (optional) the map context to use to maintain link connection maps */ createContext(options?: { linkMapContext?: SortedMap.Context; linkConnectionsContext?: SortedMap.Context; }): ArrowValuedGraphSorted.Context; /** * Returns the default context for this type of graph. * @typeparam UN - the upper node type that the context should accept */ defaultContext(): ArrowValuedGraphSorted.Context; }