import { z } from 'zod'; import { Cid } from '@atproto/lex-data'; import { BlockMap } from '../block-map'; import { CidSet } from '../cid-set'; import { ReadableBlockstore } from '../storage'; import { CarBlock } from '../types'; declare const nodeData: z.ZodObject<{ l: z.ZodNullable, unknown>>; e: z.ZodArray, z.ZodTypeDef, Uint8Array>; v: z.ZodEffects, unknown>; t: z.ZodNullable, unknown>>; }, "strip", z.ZodTypeAny, { p: number; k: Uint8Array; v: Cid<0 | 1, number, number>; t: Cid<0 | 1, number, number> | null; }, { p: number; k: Uint8Array; v?: unknown; t?: unknown; }>, "many">; }, "strip", z.ZodTypeAny, { l: Cid<0 | 1, number, number> | null; e: { p: number; k: Uint8Array; v: Cid<0 | 1, number, number>; t: Cid<0 | 1, number, number> | null; }[]; }, { e: { p: number; k: Uint8Array; v?: unknown; t?: unknown; }[]; l?: unknown; }>; export type NodeData = z.infer; export declare const nodeDataDef: { name: string; schema: z.ZodObject<{ l: z.ZodNullable, unknown>>; e: z.ZodArray, z.ZodTypeDef, Uint8Array>; v: z.ZodEffects, unknown>; t: z.ZodNullable, unknown>>; }, "strip", z.ZodTypeAny, { p: number; k: Uint8Array; v: Cid<0 | 1, number, number>; t: Cid<0 | 1, number, number> | null; }, { p: number; k: Uint8Array; v?: unknown; t?: unknown; }>, "many">; }, "strip", z.ZodTypeAny, { l: Cid<0 | 1, number, number> | null; e: { p: number; k: Uint8Array; v: Cid<0 | 1, number, number>; t: Cid<0 | 1, number, number> | null; }[]; }, { e: { p: number; k: Uint8Array; v?: unknown; t?: unknown; }[]; l?: unknown; }>; }; export type NodeEntry = MST | Leaf; export type MstOpts = { layer: number; }; export declare class MST { storage: ReadableBlockstore; entries: NodeEntry[] | null; layer: number | null; pointer: Cid; outdatedPointer: boolean; constructor(storage: ReadableBlockstore, pointer: Cid, entries: NodeEntry[] | null, layer: number | null); static create(storage: ReadableBlockstore, entries?: NodeEntry[], opts?: Partial): Promise; static fromData(storage: ReadableBlockstore, data: NodeData, opts?: Partial): Promise; static load(storage: ReadableBlockstore, cid: Cid, opts?: Partial): MST; newTree(entries: NodeEntry[]): Promise; getEntries(): Promise; getPointer(): Promise; serialize(): Promise<{ cid: Cid; bytes: Uint8Array; }>; getLayer(): Promise; attemptGetLayer(): Promise; getUnstoredBlocks(): Promise<{ root: Cid; blocks: BlockMap; }>; add(key: string, value: Cid, knownZeros?: number): Promise; get(key: string): Promise; update(key: string, value: Cid): Promise; delete(key: string): Promise; deleteRecurse(key: string): Promise; updateEntry(index: number, entry: NodeEntry): Promise; removeEntry(index: number): Promise; append(entry: NodeEntry): Promise; prepend(entry: NodeEntry): Promise; atIndex(index: number): Promise; slice(start?: number | undefined, end?: number | undefined): Promise; spliceIn(entry: NodeEntry, index: number): Promise; replaceWithSplit(index: number, left: MST | null, leaf: Leaf, right: MST | null): Promise; trimTop(): Promise; splitAround(key: string): Promise<[MST | null, MST | null]>; appendMerge(toMerge: MST): Promise; createChild(): Promise; createParent(): Promise; findGtOrEqualLeafIndex(key: string): Promise; walkFrom(key: string): AsyncIterable; walkLeavesFrom(key: string): AsyncIterable; list(count?: number, after?: string, before?: string): Promise; listWithPrefix(prefix: string, count?: number): Promise; walk(): AsyncIterable; paths(): Promise; allNodes(): Promise; allCids(): Promise; leaves(): Promise; leafCount(): Promise; walkReachable(): AsyncIterable; reachableLeaves(): Promise; carBlockStream(): AsyncIterable; cidsForPath(key: string): Promise; getCoveringProof(key: string): Promise; proofForKey(key: string): Promise; proofForLeftSib(key: string): Promise; proofForRightSib(key: string): Promise; isTree(): this is MST; isLeaf(): this is Leaf; equals(other: NodeEntry): Promise; } export declare class Leaf { key: string; value: Cid; constructor(key: string, value: Cid); isTree(): this is MST; isLeaf(): this is Leaf; equals(entry: NodeEntry): boolean; } export {}; //# sourceMappingURL=mst.d.ts.map