import { CID } from "multiformats/cid"; import { DistinctivePath } from "../../path/index.js"; import { Permissions } from "../../permissions.js"; import { Puttable, SimpleLink, SimpleLinks, UnixTree } from "../types.js"; import * as Crypto from "../../components/crypto/implementation.js"; import * as Depot from "../../components/depot/implementation.js"; import * as Manners from "../../components/manners/implementation.js"; import * as Reference from "../../components/reference/implementation.js"; import * as Storage from "../../components/storage/implementation.js"; import * as Path from "../../path/index.js"; import * as Versions from "../versions.js"; import BareTree from "../bare/tree.js"; import MMPT from "../protocol/private/mmpt.js"; import PrivateTree from "../v1/PrivateTree.js"; import PrivateFile from "../v1/PrivateFile.js"; declare type Dependencies = { crypto: Crypto.Implementation; depot: Depot.Implementation; manners: Manners.Implementation; reference: Reference.Implementation; storage: Storage.Implementation; }; declare type PrivateNode = PrivateTree | PrivateFile; export default class RootTree implements Puttable { dependencies: Dependencies; links: SimpleLinks; mmpt: MMPT; privateLog: Array; sharedCounter: number; sharedLinks: SimpleLinks; publicTree: UnixTree & Puttable; prettyTree: BareTree; privateNodes: Record; constructor({ dependencies, links, mmpt, privateLog, sharedCounter, sharedLinks, publicTree, prettyTree, privateNodes }: { dependencies: Dependencies; links: SimpleLinks; mmpt: MMPT; privateLog: Array; sharedCounter: number; sharedLinks: SimpleLinks; publicTree: UnixTree & Puttable; prettyTree: BareTree; privateNodes: Record; }); static empty({ accountDID, dependencies, rootKey, wnfsWasm }: { accountDID: string; dependencies: Dependencies; rootKey: Uint8Array; wnfsWasm?: boolean; }): Promise; static fromCID({ accountDID, dependencies, cid, permissions }: { accountDID: string; dependencies: Dependencies; cid: CID; permissions?: Permissions; }): Promise; put(): Promise; putDetailed(): Promise; updateLink(name: string, result: Depot.PutResult): this; updatePuttable(name: string, puttable: Puttable): Promise; findPrivateNode(path: DistinctivePath): [DistinctivePath, PrivateNode | null]; static LOG_CHUNK_SIZE: number; addPrivateLogEntry(depot: Depot.Implementation, cid: CID): Promise; addShares(links: SimpleLink[]): Promise; static getSharedLinks(depot: Depot.Implementation, cid: CID): Promise; setSharedCounter(counter: number): Promise; bumpSharedCounter(): Promise; setVersion(v: Versions.SemVer): Promise; getVersion(): Promise; } export {};