/// <reference types="node" />
import { BFastDatabaseOptions } from "../bfast-database.option";
import { IPFSHTTPClient } from "ipfs-http-client";
interface IpfsOption {
    json?: boolean;
    start?: number;
    end?: number;
    stream?: boolean;
}
export declare class IpfsFactory {
    static ipfs: IPFSHTTPClient;
    ensureIpfs(options: BFastDatabaseOptions): Promise<void>;
    generateCidFromData(data: {
        [k: string]: any;
    }, buffer: Buffer, domain: string, options: BFastDatabaseOptions): Promise<{
        cid: string;
        size: number;
    }>;
    generateDataFromCid(cid: string, ipfsOptions: IpfsOption, options: BFastDatabaseOptions): Promise<object | ReadableStream | Buffer>;
    generateCidFromLocalIpfsNode(buffer: Buffer): Promise<{
        cid: string;
        size: number;
    }>;
    generateCidFromWeb3IpfsNode(buffer: Buffer, domain: string, data: {
        [k: string]: any;
    }, options: BFastDatabaseOptions): Promise<{
        cid: import("web3.storage/dist/src/lib/interface").CIDString;
        size: number;
    }>;
    checkIfWeHaveCidInWeb3(cid: string, options: BFastDatabaseOptions): Promise<boolean>;
}
export {};
