import type { BPTreeCondition, BPTreeLeafNode, BPTreeNodeKey, BPTreeUnknownNode, BPTreeSearchOption, SerializableData, SerializeStrategyHead } from '../types'; import type { BPTreeNodeOpsAsync, BPTreeAlgoContext } from './BPTreeNodeOps'; import { ValueComparator } from './ValueComparator'; import { cloneNode, binarySearchValues, insertValueIntoLeaf, createVerifierMap, resolveStartEndConfigs, verify } from './BPTreeAlgorithmSync'; export { cloneNode, binarySearchValues, insertValueIntoLeaf, createVerifierMap, resolveStartEndConfigs, verify }; type AsyncSearchConfigEntry = { start: (rootId: string, ops: BPTreeNodeOpsAsync, v: V[]) => Promise | null>; end: (rootId: string, ops: BPTreeNodeOpsAsync, v: V[]) => Promise | null>; direction: 1 | -1; earlyTerminate: boolean; }; export declare function createSearchConfigsAsync(comparator: ValueComparator, ensureValues: (v: V | V[]) => V[]): Record, Record<'asc' | 'desc', AsyncSearchConfigEntry>>; export declare function locateLeafAsync(ops: BPTreeNodeOpsAsync, rootId: string, value: V, comparator: ValueComparator): Promise>; export declare function findLowerBoundLeafAsync(ops: BPTreeNodeOpsAsync, rootId: string, value: V, comparator: ValueComparator): Promise>; export declare function findUpperBoundLeafAsync(ops: BPTreeNodeOpsAsync, rootId: string, value: V, comparator: ValueComparator): Promise>; export declare function findOuterBoundaryLeafAsync(ops: BPTreeNodeOpsAsync, rootId: string, value: V, direction: 1 | -1, comparator: ValueComparator): Promise | null>; export declare function leftestNodeAsync(ops: BPTreeNodeOpsAsync, rootId: string): Promise>; export declare function rightestNodeAsync(ops: BPTreeNodeOpsAsync, rootId: string): Promise>; export declare function getPairsGeneratorAsync(ops: BPTreeNodeOpsAsync, startNode: BPTreeLeafNode, endNode: BPTreeLeafNode | null, direction: 1 | -1): AsyncGenerator<[K, V]>; export declare function insertAtLeafAsync(ops: BPTreeNodeOpsAsync, node: BPTreeUnknownNode, key: BPTreeNodeKey, value: V, comparator: ValueComparator): Promise>; export declare function insertInParentAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, node: BPTreeUnknownNode, value: V, newSiblingNode: BPTreeUnknownNode): Promise; export declare function insertOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, key: K, value: V, comparator: ValueComparator): Promise; export declare function deleteEntryAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, node: BPTreeUnknownNode, key: BPTreeNodeKey, comparator: ValueComparator): Promise>; export declare function deleteOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, key: K, comparator: ValueComparator, value?: V): Promise; export declare function batchDeleteOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, entries: [K, V?][], comparator: ValueComparator): Promise; export declare function batchInsertOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, entries: [K, V][], comparator: ValueComparator): Promise; export declare function bulkLoadOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, entries: [K, V][], comparator: ValueComparator): Promise; export declare function existsOpAsync(ops: BPTreeNodeOpsAsync, rootId: string, key: K, value: V, comparator: ValueComparator): Promise; export declare function getOpAsync(ops: BPTreeNodeOpsAsync, rootId: string, key: K): Promise; export declare function whereStreamOpAsync(ops: BPTreeNodeOpsAsync, rootId: string, condition: BPTreeCondition, comparator: ValueComparator, verifierMap: Record, (nodeValue: V, value: V | V[]) => boolean>, searchConfigs: Record, Record<'asc' | 'desc', AsyncSearchConfigEntry>>, ensureValues: (v: V | V[]) => V[], options?: BPTreeSearchOption): AsyncGenerator<[K, V]>; export declare function keysStreamOpAsync(ops: BPTreeNodeOpsAsync, rootId: string, condition: BPTreeCondition, comparator: ValueComparator, verifierMap: Record, (nodeValue: V, value: V | V[]) => boolean>, searchConfigs: Record, Record<'asc' | 'desc', AsyncSearchConfigEntry>>, ensureValues: (v: V | V[]) => V[], options?: BPTreeSearchOption): AsyncGenerator; export declare function initOpAsync(ops: BPTreeNodeOpsAsync, ctx: BPTreeAlgoContext, strategyOrder: number, strategyHead: { data: SerializableData; }, setStrategyHead: (head: SerializeStrategyHead) => void): Promise;