/** * @packageDocumentation * @module std */ import { MultiTreeSet } from "../internal/container/associative/MultiTreeSet"; import { IForwardIterator } from "../iterator/IForwardIterator"; import { SetElementList } from "../internal/container/associative/SetElementList"; import { Comparator } from "../internal/functional/Comparator"; /** * Multiple-key Set based on Tree. * * @author Jeongho Nam - https://github.com/samchon */ export declare class TreeMultiSet extends MultiTreeSet, TreeMultiSet.Iterator, TreeMultiSet.ReverseIterator> { private tree_; /** * Default Constructor. * * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Note that, because *equality* is predicated by `!comp(x, y) && !comp(y, x)`, the function must not cover the *equality* like `<=` or `>=`. It must exclude the *equality* like `<` or `>`. Default is {@link less}. */ constructor(comp?: Comparator); /** * Initializer Constructor. * * @param items Items to assign. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Note that, because *equality* is predicated by `!comp(x, y) && !comp(y, x)`, the function must not cover the *equality* like `<=` or `>=`. It must exclude the *equality* like `<` or `>`. Default is {@link less}. */ constructor(items: Key[], comp?: Comparator); /** * Copy Constructor. * * @param obj Object to copy. */ constructor(obj: TreeMultiSet); /** * Range Constructor. * * @param first Input iterator of the first position. * @param last Input iterator of the last position. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Note that, because *equality* is predicated by `!comp(x, y) && !comp(y, x)`, the function must not cover the *equality* like `<=` or `>=`. It must exclude the *equality* like `<` or `>`. Default is {@link less}. */ constructor(first: Readonly>, last: Readonly>, comp?: Comparator); /** * @inheritDoc */ clear(): void; /** * @inheritDoc */ swap(obj: TreeMultiSet): void; /** * @inheritDoc */ key_comp(): Comparator; /** * @inheritDoc */ lower_bound(key: Key): TreeMultiSet.Iterator; /** * @inheritDoc */ upper_bound(key: Key): TreeMultiSet.Iterator; protected _Handle_insert(first: TreeMultiSet.Iterator, last: TreeMultiSet.Iterator): void; protected _Handle_erase(first: TreeMultiSet.Iterator, last: TreeMultiSet.Iterator): void; } /** * */ export declare namespace TreeMultiSet { /** * Iterator of {@link TreeMultiSet} */ type Iterator = SetElementList.Iterator>; /** * Reverse iterator of {@link TreeMultiSet} */ type ReverseIterator = SetElementList.ReverseIterator>; const Iterator: typeof SetElementList.Iterator; const ReverseIterator: typeof SetElementList.ReverseIterator; } //# sourceMappingURL=TreeMultiSet.d.ts.map