import type { InfiniteHash } from './consumable-hash.ts'; export interface BucketChild { key: string; value: V; hash: InfiniteHash; } interface SA { length: number; compactArray(): B[]; get(i: number): B; set(i: number, value: B): void; reduce(fn: (acc: A, curr: B, index: number) => A, initial: A): B; find(fn: (item: B) => boolean): B | undefined; bitField(): number[]; unset(i: number): void; } export interface BucketPosition { bucket: Bucket; pos: number; hash: InfiniteHash; existingChild?: BucketChild; } export interface BucketOptions { bits: number; hash(value: Uint8Array | InfiniteHash): InfiniteHash; } export declare class Bucket { _options: BucketOptions; _popCount: number; _parent?: Bucket; _posAtParent: number; _children: SA | BucketChild>; key: string | null; constructor(options: BucketOptions, parent?: Bucket, posAtParent?: number); put(key: string, value: T): Promise; get(key: string): Promise; del(key: string): Promise; leafCount(): number; childrenCount(): number; onlyChild(): Bucket | BucketChild; eachLeafSeries(): Iterable>; serialize(map: (value: BucketChild, index: number) => M, reduce: (reduced: Bucket | BucketChild) => M): M; asyncTransform(asyncMap: (value: BucketChild) => Promise, asyncReduce: (reduced: any) => Promise): Promise; toJSON(): Record; prettyPrint(): string; tableSize(): number; _findChild(key: string): Promise | undefined>; _findPlace(key: string | InfiniteHash): Promise>; _findNewBucketAndPos(key: string | InfiniteHash): Promise>; _putAt(place: BucketPosition, key: string, value: T): void; _putObjectAt(pos: number, object: Bucket | BucketChild): void; _delAt(pos: number): void; _level(): void; _at(index: number): Bucket | BucketChild; } export {}; //# sourceMappingURL=bucket.d.ts.map