import { N, A } from './baseType'; import { SingleChain } from './chain'; declare type HashMapKind = 'separate' | 'line'; declare type HashMapHash = 'djb2' | 'loselose'; interface HashMapBoxItem { key: A; value: G; } declare type HashMapBox = HashMapBoxItem[]; declare type HashFn = (p: A) => N; interface HashMap { box: SingleChain | HashMapBox; _size: N; kind: HashMapKind; hash: HashMapHash; createNode: (k: A, v: G) => HashMapBoxItem; _put: (k: A, v: G) => N; _hashFn: (k: A) => N; _remove: (k: A) => G; _get: (k: A) => HashMapBoxItem | undefined; put: (k: A, v: G) => N; remove: (k: A) => G; get: (k: A) => G | undefined; hashFn: (k: A) => N; size: () => N; } export { HashMapKind, HashMapHash, HashMap, HashFn };