import * as C from '@collectable/core'; import { RedBlackTreeStructure } from './RedBlackTree'; export declare class Node implements C.Persistent { key: K; value: V; _red: boolean; _left: Node; _right: Node; _count: number; readonly '@@mctx': C.MutationContext; constructor(mctx: C.MutationContext, key: K, value: V, _red: boolean, _left: Node, _right: Node, _count: number); /** @internal */ '@@clone'(mctx: C.MutationContext): Node; } /** A read-only reference to an entry in a RedBlackTree instance. */ export declare type RedBlackTreeEntry = { /** Read only. The hash key of this entry in the tree. */ readonly key: K; /** Read/write. The value of this entry in the tree. */ value: V; }; export declare const enum BRANCH { NONE = 0, LEFT = 1, RIGHT = 2 } export declare const NONE: Node; export declare function createNode(tree: RedBlackTreeStructure, red: boolean, key: K, value: V): Node; export declare function isNone(node: Node): boolean; export declare function editRightChild(owner: C.Persistent, node: Node): Node; export declare function editLeftChild(owner: C.Persistent, node: Node): Node; export declare function assignValue(value: V, node: Node): boolean;