import { CID } from 'multiformats';
import { BlockMap } from './block-map';
import { CidSet } from './cid-set';
import { MST, NodeEntry } from './mst';
export declare class DataDiff {
    adds: Record<string, DataAdd>;
    updates: Record<string, DataUpdate>;
    deletes: Record<string, DataDelete>;
    newMstBlocks: BlockMap;
    newLeafCids: CidSet;
    removedCids: CidSet;
    static of(curr: MST, prev: MST | null): Promise<DataDiff>;
    nodeAdd(node: NodeEntry): Promise<void>;
    nodeDelete(node: NodeEntry): Promise<void>;
    leafAdd(key: string, cid: CID): void;
    leafUpdate(key: string, prev: CID, cid: CID): void;
    leafDelete(key: string, cid: CID): void;
    treeAdd(cid: CID, bytes: Uint8Array): void;
    treeDelete(cid: CID): void;
    addList(): DataAdd[];
    updateList(): DataUpdate[];
    deleteList(): DataDelete[];
    updatedKeys(): string[];
}
export type DataAdd = {
    key: string;
    cid: CID;
};
export type DataUpdate = {
    key: string;
    prev: CID;
    cid: CID;
};
export type DataDelete = {
    key: string;
    cid: CID;
};
//# sourceMappingURL=data-diff.d.ts.map