type VoidFn = () => void; type Pair = { value?: ValueType; map?: Map>; revision?: number; }; export type DeepMapVisitFn = (pair: Pair, keys: KeyType[], next: VoidFn) => void; export declare class DeepMap { private map; private length; private revision; static clone(map: DeepMap): DeepMap; constructor(initial?: [KeyType[], ValueType][]); set(keys: KeyType[] & { length: Omit; }, value: ValueType): this; get(keys: KeyType[]): ValueType | undefined; get size(): number; clear(): void; delete(keys: KeyType[]): boolean; has(keys: KeyType[]): boolean; private visitKey; visit: (fn: DeepMapVisitFn) => void; visitDepthFirst: (fn: (value: ValueType, keys: KeyType[], indexInGroup: number, next?: VoidFn) => void) => void; private visitWithNext; private getArray; values(): Generator; keys(): Generator; entries(): Generator<[KeyType[], ValueType], void, unknown>; topDownEntries(): [KeyType[], ValueType][]; topDownKeys(): KeyType[][]; topDownValues(): ValueType[]; private sortedIterator; } export declare function once(fn: () => ReturnType): () => ReturnType; export {};