/**
 * @file API
 * @desc These methods facilitate HTTP requests to the Fortress API.
 */
import { APIResponse, AccountServiceRequest, CTokenServiceRequest, MarketHistoryServiceRequest, GovernanceServiceRequest } from './types';
/**
 * Makes a request to the AccountService API. The Account API retrieves
 *     information for various accounts which have interacted with the protocol.
 *     For more details, see the Fortress API documentation.
 *
 * @param {object} options A JavaScript object of API request parameters.
 *
 * @returns {object} Returns the HTTP response body or error.
 *
 * @example
 *
 * ```
 * (async function() {
 *   const account = await Fortress.api.account({
 *     "addresses": "0xB61C5971d9c0472befceFfbE662555B78284c307",
 *     "network": "testnet"
 *   });
 *
 *   let daiBorrowBalance = 0;
 *   if (Object.isExtensible(account) && account.accounts) {
 *     account.accounts.forEach((acc) => {
 *       acc.tokens.forEach((tok) => {
 *         if (tok.symbol === Fortress.fDAI) {
 *           daiBorrowBalance = +tok.borrow_balance_underlying.value;
 *         }
 *       });
 *     });
 *   }
 *
 *   console.log('daiBorrowBalance', daiBorrowBalance);
 * })().catch(console.error);
 * ```
 */
export declare function account(options: AccountServiceRequest): Promise<APIResponse>;
/**
 * Makes a request to the CTokenService API. The fToken API retrieves
 *     information about fToken contract interaction. For more details, see the
 *     Fortress API documentation.
 *
 * @param {object} options A JavaScript object of API request parameters.
 *
 * @returns {object} Returns the HTTP response body or error.
 *
 * @example
 *
 * ```
 * (async function() {
 *   const fDaiData = await Fortress.api.fToken({
 *     "addresses": Fortress.util.getAddress(Fortress.fDAI)
 *   });
 *
 *   console.log('fDaiData', fDaiData); // JavaScript Object
 * })().catch(console.error);
 * ```
 */
export declare function fToken(options: CTokenServiceRequest): Promise<APIResponse>;
/**
 * Makes a request to the MarketHistoryService API. The market history service
 *     retrieves information about a market. For more details, see the Fortress
 *     API documentation.
 *
 * @param {object} options A JavaScript object of API request parameters.
 *
 * @returns {object} Returns the HTTP response body or error.
 *
 * @example
 *
 * ```
 * (async function() {
 *   const fUsdcMarketData = await Fortress.api.marketHistory({
 *     "asset": Fortress.util.getAddress(Fortress.fUSDC),
 *     "min_block_timestamp": 1559339900,
 *     "max_block_timestamp": 1598320674,
 *     "num_buckets": 10,
 *   });
 *
 *   console.log('fUsdcMarketData', fUsdcMarketData); // JavaScript Object
 * })().catch(console.error);
 * ```
 */
export declare function marketHistory(options: MarketHistoryServiceRequest): Promise<APIResponse>;
/**
 * Makes a request to the GovernanceService API. The Governance Service includes
 *     three endpoints to retrieve information about COMP accounts. For more
 *     details, see the Fortress API documentation.
 *
 * @param {object} options A JavaScript object of API request parameters.
 * @param {string} endpoint A string of the name of the corresponding governance
 *     service endpoint. Valid values are `proposals`, `voteReceipts`, or
 *     `accounts`.
 *
 * @returns {object} Returns the HTTP response body or error.
 *
 * @example
 *
 * ```
 * (async function() {
 *   const proposal = await Fortress.api.governance(
 *     { "proposal_ids": [ 20 ] }, 'proposals'
 *   );
 *
 *   console.log('proposal', proposal); // JavaScript Object
 * })().catch(console.error);
 * ```
 */
export declare function governance(options: GovernanceServiceRequest, endpoint: string): Promise<APIResponse>;
