/** * @since 1.0.0 */ import type { Option } from "@fp-ts/core/Option"; import type { Order } from "@fp-ts/core/typeclass/Order"; import type { Chunk } from "@fp-ts/data/Chunk"; import type { Equal } from "@fp-ts/data/Equal"; declare const TypeId: unique symbol; /** * @since 1.0.0 * @category symbol */ export type TypeId = typeof TypeId; /** * @since 1.0.0 * @category constants */ export declare const Direction: { readonly Forward: RedBlackTree.Direction; readonly Backward: RedBlackTree.Direction; }; /** * A Red-Black Tree. * * @since 1.0.0 * @category models */ export interface RedBlackTree extends Iterable, Equal { readonly _id: TypeId; } /** * @since 1.0.0 */ export declare namespace RedBlackTree { type Direction = number & { readonly Direction: unique symbol; }; } /** * @since 1.0.0 * @category refinements */ export declare const isRedBlackTree: { (u: Iterable): u is RedBlackTree; (u: unknown): u is RedBlackTree; }; /** * Creates an empty `RedBlackTree`. * * @since 1.0.0 * @category constructors */ export declare const empty: (ord: Order) => RedBlackTree; /** * Constructs a new tree from an iterable of key-value pairs. * * @since 1.0.0 * @category constructors */ export declare const fromIterable: (ord: Order) => (entries: Iterable) => RedBlackTree; /** * Constructs a new `RedBlackTree` from the specified entries. * * @since 1.0.0 * @category constructors */ export declare const make: (ord: Order) => >(...entries: Entries) => RedBlackTree; /** * Returns an iterator that points to the element at the specified index of the * tree. * * **Note**: The iterator will run through elements in order. * * @since 1.0.0 * @category traversing */ export declare const at: { (self: RedBlackTree, index: number): Iterable; (index: number): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that points to the element at the specified index of the * tree. * * **Note**: The iterator will run through elements in reverse order. * * @since 1.0.0 * @category traversing */ export declare const atReversed: { (self: RedBlackTree, index: number): Iterable; (index: number): (self: RedBlackTree) => Iterable; }; /** * Finds all values in the tree associated with the specified key. * * @since 1.0.0 * @category elements */ export declare const find: { (self: RedBlackTree, key: K): Chunk; (key: K): (self: RedBlackTree) => Chunk; }; /** * Finds the value in the tree associated with the specified key, if it exists. * * @since 1.0.0 * @category elements */ export declare const findFirst: { (self: RedBlackTree, key: K): Option; (key: K): (self: RedBlackTree) => Option; }; /** * Returns the first entry in the tree, if it exists. * * @since 1.0.0 * @category getters */ export declare const first: (self: RedBlackTree) => Option; /** * Returns the element at the specified index within the tree or `None` if the * specified index does not exist. * * @since 1.0.0 * @category elements */ export declare const getAt: { (self: RedBlackTree, index: number): Option; (index: number): (self: RedBlackTree) => Option; }; /** * Gets the `Order` that the `RedBlackTree` is using. * * @since 1.0.0 * @category getters */ export declare const getOrder: (self: RedBlackTree) => Order; /** * Returns an iterator that traverse entries in order with keys greater than the * specified key. * * @since 1.0.0 * @category traversing */ export declare const greaterThan: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in reverse order with keys greater * than the specified key. * * @since 1.0.0 * @category traversing */ export declare const greaterThanReversed: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in order with keys greater than or * equal to the specified key. * * @since 1.0.0 * @category traversing */ export declare const greaterThanEqual: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in reverse order with keys greater * than or equal to the specified key. * * @since 1.0.0 * @category traversing */ export declare const greaterThanEqualReversed: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Finds the item with key, if it exists. * * @since 1.0.0 * @category elements */ export declare const has: { (self: RedBlackTree, key: K): boolean; (key: K): (self: RedBlackTree) => boolean; }; /** * Insert a new item into the tree. * * @since 1.0.0 * @category mutations */ export declare const insert: { (self: RedBlackTree, key: K, value: V): RedBlackTree; (key: K, value: V): (self: RedBlackTree) => RedBlackTree; }; /** * Get all the keys present in the tree in order. * * @since 1.0.0 * @category getters */ export declare const keys: (self: RedBlackTree) => IterableIterator; /** * Get all the keys present in the tree in reverse order. * * @since 1.0.0 * @category getters */ export declare const keysReversed: (self: RedBlackTree) => IterableIterator; /** * Returns the last entry in the tree, if it exists. * * @since 1.0.0 * @category getters */ export declare const last: (self: RedBlackTree) => Option; /** * Returns an iterator that traverse entries in order with keys less than the * specified key. * * @since 1.0.0 * @category traversing */ export declare const lessThan: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in reverse order with keys less * than the specified key. * * @since 1.0.0 * @category traversing */ export declare const lessThanReversed: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in order with keys less than or * equal to the specified key. * * @since 1.0.0 * @category traversing */ export declare const lessThanEqual: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Returns an iterator that traverse entries in reverse order with keys less * than or equal to the specified key. * * @since 1.0.0 * @category traversing */ export declare const lessThanEqualReversed: { (self: RedBlackTree, key: K): Iterable; (key: K): (self: RedBlackTree) => Iterable; }; /** * Execute the specified function for each node of the tree, in order. * * @since 1.0.0 * @category traversing */ export declare const forEach: { (self: RedBlackTree, f: (key: K, value: V) => void): void; (f: (key: K, value: V) => void): (self: RedBlackTree) => void; }; /** * Visit each node of the tree in order with key greater then or equal to max. * * @since 1.0.0 * @category traversing */ export declare const forEachGreaterThanEqual: { (self: RedBlackTree, min: K, f: (key: K, value: V) => void): void; (min: K, f: (key: K, value: V) => void): (self: RedBlackTree) => void; }; /** * Visit each node of the tree in order with key lower then max. * * @since 1.0.0 * @category traversing */ export declare const forEachLessThan: { (self: RedBlackTree, max: K, f: (key: K, value: V) => void): void; (max: K, f: (key: K, value: V) => void): (self: RedBlackTree) => void; }; /** * Visit each node of the tree in order with key lower than max and greater * than or equal to min. * * @since 1.0.0 * @category traversing */ export declare const forEachBetween: { (self: RedBlackTree, min: K, max: K, f: (key: K, value: V) => void): void; (min: K, max: K, f: (key: K, value: V) => void): (self: RedBlackTree) => void; }; /** * Reduce a state over the map entries. * * @since 1.0.0 * @category folding */ export declare const reduce: { (self: RedBlackTree, zero: Z, f: (accumulator: Z, value: V) => Z): Z; (zero: Z, f: (accumulator: Z, value: V) => Z): (self: RedBlackTree) => Z; }; /** * Reduce a state over the entries of the tree. * * @since 1.0.0 * @category folding */ export declare const reduceWithIndex: { (self: RedBlackTree, zero: Z, f: (accumulator: Z, value: V, key: K) => Z): Z; (zero: Z, f: (accumulator: Z, value: V, key: K) => Z): (self: RedBlackTree) => Z; }; /** * Removes the entry with the specified key, if it exists. * * @since 1.0.0 * @category mutations */ export declare const removeFirst: { (self: RedBlackTree, key: K): RedBlackTree; (key: K): (self: RedBlackTree) => RedBlackTree; }; /** * Traverse the tree in reverse order. * * @since 1.0.0 * @category traversing */ export declare const reversed: (self: RedBlackTree) => Iterable; /** * Returns the size of the tree. * * @since 1.0.0 * @category getters */ export declare const size: (self: RedBlackTree) => number; /** * Get all values present in the tree in order. * * @since 1.0.0 * @category getters */ export declare const values: (self: RedBlackTree) => IterableIterator; /** * Get all values present in the tree in reverse order. * * @since 1.0.0 * @category getters */ export declare const valuesReversed: (self: RedBlackTree) => IterableIterator; export {}; //# sourceMappingURL=RedBlackTree.d.ts.map