import { Associative, ComparatorFn, MutationContext, PreferredContext } from '@collectable/core'; import { IndexedCollection } from '@collectable/core'; import { Node, RedBlackTreeEntry } from './node'; import { RedBlackTreeIterator } from './iterator'; export declare class RedBlackTreeStructure implements IndexedCollection, Associative> { /** @internal */ _compare: ComparatorFn; /** @internal */ _root: Node; /** @internal */ _size: number; /** @internal */ constructor(mctx: MutationContext, compare: ComparatorFn, root: Node, size: number); /** @internal */ readonly '@@mctx': MutationContext; /** @internal */ readonly '@@is-collection': true; /** @internal */ readonly '@@size': number; /** @internal */ '@@clone'(mctx: MutationContext): RedBlackTreeStructure; /** @internal */ '@@equals'(other: RedBlackTreeStructure): boolean; /** @internal */ '@@hash'(): number; /** @internal */ '@@unwrap'(): any; /** @internal */ '@@unwrapInto'(target: Associative): Associative; /** @internal */ '@@createUnwrapTarget'(): Associative; /** @internal */ '@@get'(key: K): V | undefined; /** @internal */ '@@has'(key: K): boolean; /** @internal */ '@@set'(key: K, value: V): this; /** @internal */ '@@update'(updater: (value: V, tree: this) => any, key: K): this; /** @internal */ '@@verifyKey'(key: any): boolean; [Symbol.iterator](): RedBlackTreeIterator; } export declare function isRedBlackTree(arg: any): arg is RedBlackTreeStructure; export declare function createTree(compare: ComparatorFn, pctx?: PreferredContext): RedBlackTreeStructure; export declare function cloneTree(tree: RedBlackTreeStructure, pctx?: PreferredContext): RedBlackTreeStructure;