import BaseFile from "../base/file.js";
import MMPT from "../protocol/private/mmpt.js";
import PrivateHistory from "./PrivateHistory.js";
import { FileContent } from "../../ipfs/index.js";
import { PrivateName, BareNameFilter } from "../protocol/private/namefilter.js";
import { DecryptedNode, PrivateAddResult, PrivateFileInfo } from "../protocol/private/types.js";
import { Maybe } from "../../common/index.js";
declare type ConstructorParams = {
    content: FileContent;
    key: string;
    header: PrivateFileInfo;
    mmpt: MMPT;
};
export declare class PrivateFile extends BaseFile {
    header: PrivateFileInfo;
    history: PrivateHistory;
    key: string;
    mmpt: MMPT;
    constructor({ content, mmpt, key, header }: ConstructorParams);
    static instanceOf(obj: unknown): obj is PrivateFile;
    static create(mmpt: MMPT, content: FileContent, parentNameFilter: BareNameFilter, key: string): Promise<PrivateFile>;
    static fromBareNameFilter(mmpt: MMPT, bareNameFilter: BareNameFilter, key: string): Promise<PrivateFile>;
    static fromLatestName(mmpt: MMPT, name: PrivateName, key: string): Promise<PrivateFile>;
    static fromName(mmpt: MMPT, name: PrivateName, key: string): Promise<PrivateFile>;
    static fromInfo(mmpt: MMPT, key: string, info: Maybe<DecryptedNode>): Promise<PrivateFile>;
    getName(): Promise<PrivateName>;
    updateParentNameFilter(parentNameFilter: BareNameFilter): Promise<this>;
    updateContent(content: FileContent): Promise<this>;
    putDetailed(): Promise<PrivateAddResult>;
}
export default PrivateFile;
