/**
 * @file Venus
 * @desc This file defines the constructor of the `Venus` class.
 * @hidden
 */
import { ethers } from 'ethers';
import * as eth from './eth';
import * as util from './util';
import * as comp from './comp';
import * as api from './api';
import { Provider, CompoundOptions, CompoundInstance } from './types';
/**
 * Creates an instance of the Venus.js SDK.
 *
 * @param {Provider | string} [provider] Optional Ethereum network provider.
 *     Defaults to Ethers.js fallback mainnet provider.
 * @param {object} [options] Optional provider options.
 *
 * @example
 * ```
 * var venus = new Venus(window.ethereum); // web browser
 *
 * var venus = new Venus('http://127.0.0.1:8545'); // HTTP provider
 *
 * var venus = new Venus(); // Uses Ethers.js fallback mainnet (for testing only)
 *
 * var venus = new Venus('testnet'); // Uses Ethers.js fallback (for testing only)
 *
 * // Init with private key (server side)
 * var venus = new Venus('https://mainnet.infura.io/v3/_your_project_id_', {
 *   privateKey: '0x_your_private_key_', // preferably with environment variable
 * });
 *
 * // Init with HD mnemonic (server side)
 * var venus = new Venus('mainnet' {
 *   mnemonic: 'clutch captain shoe...', // preferably with environment variable
 * });
 * ```
 *
 * @returns {object} Returns an instance of the Venus.js SDK.
 */
declare const Venus: {
    (provider?: Provider | string, options?: CompoundOptions): CompoundInstance;
    eth: typeof eth;
    api: typeof api;
    util: typeof util;
    _ethers: typeof ethers;
    decimals: {
        cBAT: number;
        cCOMP: number;
        cDAI: number;
        cETH: number;
        cREP: number;
        cSAI: number;
        cUNI: number;
        cUSDC: number;
        cUSDT: number;
        cWBTC: number;
        cZRX: number;
        BAT: number;
        COMP: number;
        DAI: number;
        ETH: number;
        REP: number;
        SAI: number;
        UNI: number;
        WBTC: number;
        ZRX: number;
        KNC: number;
        LINK: number;
        BTC: number;
        vBNB: number;
        vUSDC: number;
        vUSDT: number;
        vSXP: number;
        vBUSD: number;
        vXVS: number;
        BNB: number;
        USDC: number;
        USDT: number;
        SXP: number;
        BUSD: number;
        XVS: number;
    };
    venus: {
        getVenusBalance: typeof comp.getVenusBalance;
        getVenusAccrued: typeof comp.getVenusAccrued;
    };
};
export = Venus;
