import { Logger, LoggerOptions } from '@evan.network/dbcp';
import { Mailbox } from './mailbox';
/**
 * mail that will be sent to invitee
 */
export interface InvitationMail {
    body: string;
    subject: string;
    to: string;
    fromAlias?: string;
    lang?: string;
}
/**
 * parameters for Onboarding constructor
 */
export interface OnboardingOptions extends LoggerOptions {
    mailbox: Mailbox;
    smartAgentId: string;
    executor: any;
}
/**
 * helper class for sending onboarding mails
 *
 * @class      Mailbox (name)
 */
export declare class Onboarding extends Logger {
    options: OnboardingOptions;
    /**
     * creates a new random mnemonic
     */
    static createMnemonic(): string;
    /**
     * Creates a new profile for a given mnemonic, and password
     *
     * @param      {string}  mnemonic  given mnemonic for the new profile
     * @param      {string}  password  password for the given profile
     * @param      {string}  network   selected network (testcore/core) - defaults to testcore
     *
     * @return     {Promise<any>}   resolved when done
     */
    static createNewProfile(mnemonic: string, password: string, network?: string): Promise<any>;
    /**
     * generates a runtime config for a given mneomic and password
     *
     * @param      {string}  mnemonic  specified mnemonic
     * @param      {string}  password  given password
     * @param      {any}     web3      web3 instance
     */
    static generateRuntimeConfig(mnemonic: string, password: string, web3: any): Promise<{
        accountMap: {
            [x: number]: any;
        };
        keyConfig: {
            [x: number]: any;
        };
    }>;
    /**
     * creates a complete profile and emits it to the given smart agent
     *
     * @param      {any}     runtime    initialized runtime
     * @param      {string}  alias      alias of the profile
     * @param      {string}  accountId  accountId of the privateKey
     * @param      {string}  pKey       private key
     * @param      {string}  network    selected network (testcore/core) - defaults to testcore
     */
    private static _createOfflineProfile(runtime, alias, accountId, pKey, network?);
    constructor(optionsInput: OnboardingOptions);
    /**
     * send invitation to another user via smart agent that sends a mail
     *
     * @param      {InvitationMail}  invitation  mail that will be sent to invited person
     * @param      {string}          weiToSend   amount of ETC to transfert to new member, can be
     *                                           created with web3.utils.toWei(10, 'ether')
     *                                           [web3 >=1.0] / web.toWei(10, 'ether') [web3 < 1.0]
     * @return     {Promise<void>}   resolved when done
     */
    sendInvitation(invitation: InvitationMail, weiToSend: string): Promise<void>;
}
