import { Envelope } from '@evan.network/dbcp';
import * as Dbcp from '@evan.network/dbcp';
import { Sharing } from './contracts/sharing';
export interface DescriptionOptions extends Dbcp.DescriptionOptions {
    sharing: Sharing;
}
export declare class Description extends Dbcp.Description {
    sharing: Sharing;
    constructor(options: DescriptionOptions);
    /**
     * loads description envelope from contract
     *
     * @param      {string}    ensAddress  The ens address where the description is stored
     * @return     {Envelope}  description as an Envelope
     */
    getDescriptionFromContract(contractAddress: string, accountId: string): Promise<Envelope>;
    /**
     * store description at contract
     *
     * @param      {string}           contractAddress  The contract address where description will be
     *                                                 stored
     * @param      {Envelope|string}  envelope         description as an envelope or a presaved description hash
     * @param      {string}           accountId        ETH account id
     * @return     {Promise}          resolved when done
     */
    setDescriptionToContract(contractAddress: string, envelope: Envelope | string, accountId: string): Promise<void>;
}
