import type { CID } from "multiformats/cid";
import { AddResult, FileContent } from "../../ipfs/index.js";
import { HardLinks, BaseLinks, Tree, File, Puttable, UpdateCallback } from "../types.js";
import { Maybe } from "../../common/index.js";
import { Path } from "../../path.js";
import BareFile from "../bare/file.js";
import BaseTree from "../base/tree.js";
declare class BareTree extends BaseTree {
    links: HardLinks;
    children: {
        [name: string]: Tree | File;
    };
    type: "BareTree";
    constructor(links: HardLinks);
    static empty(): Promise<BareTree>;
    static fromCID(cid: CID): Promise<BareTree>;
    static fromLinks(links: HardLinks): BareTree;
    static instanceOf(obj: unknown): obj is BareTree;
    createChildTree(name: string, onUpdate: Maybe<UpdateCallback>): Promise<Tree>;
    createOrUpdateChildFile(content: FileContent, name: string, onUpdate: Maybe<UpdateCallback>): Promise<BareFile>;
    putDetailed(): Promise<AddResult>;
    putAndUpdateLink(child: Puttable, name: string, onUpdate: Maybe<UpdateCallback>): Promise<this>;
    updateDirectChild(child: Tree | File, name: string, onUpdate: Maybe<UpdateCallback>): Promise<this>;
    removeDirectChild(name: string): this;
    getDirectChild(name: string): Promise<Tree | File | null>;
    get(path: Path): Promise<Tree | File | null>;
    updateLink(name: string, result: AddResult): this;
    getLinks(): BaseLinks;
}
export default BareTree;
