/** * A simple prefix tree implementation where a value is stored based on * well-defined prefix segments. */ export declare class WellDefinedPrefixTree { private readonly root; private _size; get size(): number; /** Inserts a new value in the prefix tree. */ insert(key: Iterable, value: V): void; /** Mutates a value in the prefix tree. */ mutate(key: Iterable, mutate: (value?: V) => V): void; /** Deletes a node from the prefix tree, returning the value it contained. */ delete(key: Iterable): V | undefined; /** Gets a value from the tree. */ find(key: Iterable): V | undefined; /** Gets whether the tree has the key, or a parent of the key, already inserted. */ hasKeyOrParent(key: Iterable): boolean; /** Gets whether the tree has the given key or any children. */ hasKeyOrChildren(key: Iterable): boolean; /** Gets whether the tree has the given key. */ hasKey(key: Iterable): boolean; private opNode; /** Returns an iterable of the tree values in no defined order. */ values(): Generator; }