import type { CID } from "multiformats/cid";
import { AddResult } from "../../../ipfs/index.js";
import { Puttable, SimpleLinks } from "../../types.js";
declare type Member = {
    name: string;
    cid: CID;
};
/**
 * Modified Merkle Patricia Tree
 * The tree has a node weight of 16
 * It stores items with hexidecimal keys and creates a new layer when a given layer has two keys that start with the same nibble
 */
export default class MMPT implements Puttable {
    links: SimpleLinks;
    children: {
        [name: string]: MMPT;
    };
    constructor(links: SimpleLinks);
    static create(): MMPT;
    static fromCID(cid: CID): Promise<MMPT>;
    putDetailed(): Promise<AddResult>;
    put(): Promise<CID>;
    add(name: string, value: CID): Promise<void>;
    putAndUpdateChildLink(name: string): Promise<void>;
    addEmptyChild(name: string): MMPT;
    get(name: string): Promise<CID | null>;
    exists(name: string): Promise<boolean>;
    members(): Promise<Array<Member>>;
    private getDirectChild;
    private removeChild;
    private directChildExists;
    private nextTreeName;
    private nextTreeOrSiblingName;
}
export {};
