import { Collection, ComparatorFn, MutationContext, SelectorFn } from '@collectable/core'; import { HashMapStructure } from '@collectable/map'; import { RedBlackTreeStructure } from '@collectable/red-black-tree'; import { SortedSetItem } from './types'; export declare type MapKey = (value: V) => K; export declare class SortedSetStructure implements Collection { _map: HashMapStructure>; _tree: RedBlackTreeStructure, null>; _compare: ComparatorFn>; _select: ((value: T) => any) | undefined; /** @internal */ constructor(mctx: MutationContext, _map: HashMapStructure>, _tree: RedBlackTreeStructure, null>, _compare: ComparatorFn>, _select: ((value: T) => any) | undefined); /** @internal */ readonly '@@mctx': MutationContext; /** @internal */ readonly '@@is-collection': true; readonly '@@size': number; /** @internal */ '@@clone'(mctx: MutationContext): SortedSetStructure; /** @internal */ '@@equals'(other: SortedSetStructure): boolean; /** @internal */ '@@hash'(): number; /** @internal */ '@@unwrap'(): T[]; /** @internal */ '@@unwrapInto'(target: T[]): T[]; /** @internal */ '@@createUnwrapTarget'(): T[]; [Symbol.iterator](): IterableIterator; } export declare function isSortedSet(arg: any): arg is SortedSetStructure; export declare function cloneSortedSet(mutable: boolean, set: SortedSetStructure, clear?: boolean): SortedSetStructure; export declare function createSet(mutable: boolean, values: T[] | Iterable, compare?: ComparatorFn): SortedSetStructure; export declare function createSet(mutable: boolean, values: T[] | Iterable, compare?: ComparatorFn, select?: SelectorFn): SortedSetStructure; export declare function extractTree(set: SortedSetStructure): RedBlackTreeStructure, null>; export declare function extractMap(set: SortedSetStructure): HashMapStructure>; export declare function emptySet(mutable: boolean | MutationContext, compare?: ComparatorFn): SortedSetStructure; export declare function emptySet(mutable: boolean | MutationContext, compare?: ComparatorFn, select?: SelectorFn): SortedSetStructure;