import Web3 from 'web3';
import * as loopring_defs from '../defs';
export declare enum ERC20Method {
    Approve = "approve",
    Deposit = "deposit",
    ForceWithdraw = "forceWithdraw"
}
export declare const ApproveVal: {
    Zero: string;
    Max: string;
};
/**
 * @description sign hash
 * @param web3
 * @param account
 * @param hash
 * @returns {Promise.<*>}
 */
export declare function sign(web3: any, account: string, pwd: string, hash: string): Promise<unknown>;
/**
 * @description Signs ethereum tx
 * @param web3
 * @param account
 * @param rawTx
 * @returns {Promise.<*>}
 */
export declare function signEthereumTx(web3: any, account: string, rawTx: any, chainId: loopring_defs.ChainId): Promise<{
    result: string;
    rawTx: object;
} | {
    error: any;
}>;
export declare function getNonce(web3: Web3, addr: string): Promise<number>;
export declare function sendRawTx(web3: any, from: string, to: string, value: any, data: any, chainId: loopring_defs.ChainId, nonce: string | number | undefined | null, gasPrice: any, gasLimit: string | number | undefined, sendByMetaMask?: boolean): Promise<any>;
export declare function genExchangeData(method: string, data: any): any;
export declare function approve(web3: Web3, from: string, to: string, depositAddress: string, _value: string, chainId: loopring_defs.ChainId, nonce: string | number, gasPrice: string | number, gasLimit: string | number, sendByMetaMask: boolean): Promise<any>;
/**
 * Approve Zero
 * @param tokenAddress: approve token symbol to zero
 * @param nonce: Ethereum nonce of this address
 * @param gasPrice: gas price in gwei
 * @param sendByMetaMask
 */
export declare function approveZero(web3: any, owner: string, tokenAddress: string, depositAddress: string, gasPrice: number, gasLimit: number, chainId: loopring_defs.ChainId | undefined, nonce: number, sendByMetaMask?: boolean): Promise<any>;
/**
 * Approve Max
 * @param tokenAddress: approve token symbol to max
 * @param nonce: Ethereum nonce of this address
 * @param gasPrice: gas price in gwei
 * @param sendByMetaMask
 */
export declare function approveMax(web3: any, owner: string, tokenAddress: string, depositAddress: string, gasPrice: string, gasLimit: string, chainId: loopring_defs.ChainId | undefined, nonce: string, sendByMetaMask?: boolean): Promise<any>;
/**
 * deposit
 */
export declare function deposit(web3: any, from: string, exchangeAddress: string, token: loopring_defs.TokenInfo, value: number, fee: number, gasPrice: string, gasLimit: string, chainId: loopring_defs.ChainId | undefined, nonce: string, sendByMetaMask?: boolean, to?: string): Promise<any>;
/**
 * forceWithdrawal
 */
export declare function forceWithdrawal(web3: any, from: string, accountID: number, exchangeAddress: string, token: loopring_defs.TokenInfo, fee: number, gasPrice: number, gasLimit: number, chainId: loopring_defs.ChainId | undefined, nonce: number, sendByMetaMask?: boolean): Promise<any>;
/**
 * @description Sends ethereum tx through MetaMask
 * @param web3
 * @param tx
 * @returns {*}
 */
export declare function sendTransaction(web3: any, tx: any): Promise<any>;
export declare function isContract(web3: any, address: string): Promise<any>;
//# sourceMappingURL=contract_api.d.ts.map