/**
 * The Aggregate API uses keys and IDs, where the keys are for sorting and
 * IDs are for tie-breaking uniqueness. The component's BTree API uses
 * positions, which are unique keys.
 */
import { Key } from "../component/btree.js";
export type Bound<K extends Key, ID extends string> = {
    key: K;
    id?: ID;
    inclusive: boolean;
};
export type Position = ["" | null | never[], Key, string | null | never[], "" | null | never[]];
export declare function keyToPosition<K extends Key, ID extends string>(key: K, id: ID): Position;
export declare function positionToKey<K extends Key, ID extends string>(position: Position): {
    key: K;
    id: ID;
};
export declare function boundToPosition<K extends Key, ID extends string>(direction: 'lower' | 'upper', bound?: Bound<K, ID>): Position;
//# sourceMappingURL=positions.d.ts.map