import type { BPTreeCondition, BPTreeLeafNode, BPTreeNodeKey, BPTreeUnknownNode, BPTreeSearchOption, SerializableData, SerializeStrategyHead } from '../types'; import type { BPTreeNodeOps, BPTreeAlgoContext } from './BPTreeNodeOps'; import { ValueComparator } from './ValueComparator'; export declare function cloneNode>(node: T): T; export declare function binarySearchValues(values: V[], target: V, comparator: ValueComparator, usePrimary?: boolean, upperBound?: boolean): { index: number; found: boolean; }; export declare function insertValueIntoLeaf(leaf: BPTreeLeafNode, key: K, value: V, comparator: ValueComparator): boolean; export declare function createVerifierMap(comparator: ValueComparator, cachedRegexp: Map, ensureValues: (v: V | V[]) => V[]): Record, (nodeValue: V, value: V | V[]) => boolean>; type SearchConfigEntry = { start: (rootId: string, ops: BPTreeNodeOps, v: V[]) => BPTreeLeafNode | null; end: (rootId: string, ops: BPTreeNodeOps, v: V[]) => BPTreeLeafNode | null; direction: 1 | -1; earlyTerminate: boolean; }; export declare function createSearchConfigs(comparator: ValueComparator, ensureValues: (v: V | V[]) => V[]): Record, Record<'asc' | 'desc', SearchConfigEntry>>; export declare function resolveStartEndConfigs(condition: BPTreeCondition, order: 'asc' | 'desc', comparator: ValueComparator, ensureValues: (v: V | V[]) => V[]): { startKey: keyof BPTreeCondition | null; endKey: keyof BPTreeCondition | null; startValues: V[]; endValues: V[]; direction: 1 | -1; }; export declare function verify(nodeValue: V, condition: BPTreeCondition, verifierMap: Record, (nodeValue: V, value: V | V[]) => boolean>): boolean; export declare function locateLeaf(ops: BPTreeNodeOps, rootId: string, value: V, comparator: ValueComparator): BPTreeLeafNode; export declare function findLowerBoundLeaf(ops: BPTreeNodeOps, rootId: string, value: V, comparator: ValueComparator): BPTreeLeafNode; export declare function findUpperBoundLeaf(ops: BPTreeNodeOps, rootId: string, value: V, comparator: ValueComparator): BPTreeLeafNode; export declare function findOuterBoundaryLeaf(ops: BPTreeNodeOps, rootId: string, value: V, direction: 1 | -1, comparator: ValueComparator): BPTreeLeafNode | null; export declare function leftestNode(ops: BPTreeNodeOps, rootId: string): BPTreeLeafNode; export declare function rightestNode(ops: BPTreeNodeOps, rootId: string): BPTreeLeafNode; export declare function getPairsGenerator(ops: BPTreeNodeOps, startNode: BPTreeLeafNode, endNode: BPTreeLeafNode | null, direction: 1 | -1): Generator<[K, V]>; export declare function insertAtLeaf(ops: BPTreeNodeOps, node: BPTreeUnknownNode, key: BPTreeNodeKey, value: V, comparator: ValueComparator): BPTreeUnknownNode; export declare function insertInParent(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, node: BPTreeUnknownNode, value: V, newSiblingNode: BPTreeUnknownNode): void; export declare function insertOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, key: K, value: V, comparator: ValueComparator): void; export declare function deleteEntry(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, node: BPTreeUnknownNode, key: BPTreeNodeKey, comparator: ValueComparator): BPTreeUnknownNode; export declare function deleteOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, key: K, comparator: ValueComparator, value?: V): void; export declare function batchDeleteOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, entries: [K, V?][], comparator: ValueComparator): void; export declare function batchInsertOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, entries: [K, V][], comparator: ValueComparator): void; export declare function bulkLoadOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, entries: [K, V][], comparator: ValueComparator): void; export declare function existsOp(ops: BPTreeNodeOps, rootId: string, key: K, value: V, comparator: ValueComparator): boolean; export declare function getOp(ops: BPTreeNodeOps, rootId: string, key: K): V | undefined; export declare function whereStreamOp(ops: BPTreeNodeOps, rootId: string, condition: BPTreeCondition, comparator: ValueComparator, verifierMap: Record, (nodeValue: V, value: V | V[]) => boolean>, searchConfigs: Record, Record<'asc' | 'desc', SearchConfigEntry>>, ensureValues: (v: V | V[]) => V[], options?: BPTreeSearchOption): Generator<[K, V]>; export declare function keysStreamOp(ops: BPTreeNodeOps, rootId: string, condition: BPTreeCondition, comparator: ValueComparator, verifierMap: Record, (nodeValue: V, value: V | V[]) => boolean>, searchConfigs: Record, Record<'asc' | 'desc', SearchConfigEntry>>, ensureValues: (v: V | V[]) => V[], options?: BPTreeSearchOption): Generator; export declare function initOp(ops: BPTreeNodeOps, ctx: BPTreeAlgoContext, strategyOrder: number, strategyHead: { data: SerializableData; }, setStrategyHead: (head: SerializeStrategyHead) => void): void; export {};