import { FileToAdd } from '@evan.network/dbcp';
/**
 * @brief      IPFS library for add/pin
 */
export declare class IpfsLib {
    /**
     * compatible IPFS files api
     */
    files: any;
    /**
     * compatible IPFS pin api
     */
    pin: any;
    /**
     * holds the provider
     */
    provider: any;
    constructor(provider: any);
    /**
     * sets the ipfs provider based on dfsConfig
     *
     * @param      {any}  provider  The provider
     */
    setProvider(provider: any): void;
    /**
     * Sends an asynchronous request to ipfs
     *
     * @param      {object}  opts    The options for the request
     */
    sendAsync(opts: any): Promise<{}>;
    /**
     * adds files to ipfs
     *
     * @param      {FileToAdd}  input   Array with to be pushed files
     */
    add(input: FileToAdd[]): Promise<any[]>;
    /**
     * creates a boundary that isn't part of the payload
     */
    createBoundary(): string;
    /**
     * resolves a ipfs hash
     *
     * @param      {string}  ipfsHash  The ipfs hash
     */
    cat(ipfsHash: string): Promise<{}>;
    /**
     * adds a pin to IPFS
     *
     * @param      {string}  ipfsHash  The ipfs hash
     */
    pinAdd(ipfsHash: string): Promise<{}>;
    /**
     * removes a pin from IPFS
     *
     * @param      {string}  ipfsHash  The ipfs hash
     */
    pinRm(ipfsHash: string): Promise<{}>;
}
