import { Ori20Contract } from "./ori20";
import type { AddEthereumChainParameter, ContractTokenMap, TransactionReceipt, WatchAssetParams, Web3ERC20Token, WebLinkTokenMap } from "../base/eth/types";
import { WalletSupport } from "../base/wallet";
import { Vue } from "vue/types/vue";
import CoinDetail from "./CoinDetail";
import Web3 from "web3";
import { Utils } from 'web3-utils';
export default class BlockWrap {
    ethereumCore: any;
    tokens: WebLinkTokenMap;
    contracts: ContractTokenMap;
    w3: Web3;
    debug: boolean;
    errorHandler: any;
    confirmHandler: any;
    boardcastHandler: any;
    accounts: Array<string>;
    gas: number;
    gasPrice: number | string;
    wallet: WalletSupport;
    constructor(webThree: any, ethereumCore: any);
    setDebug(x: boolean): void;
    setWallet(wallet_connect: WalletSupport): void;
    isInstalled(): boolean;
    isLoggedIn(): boolean;
    isAddress(test: any): boolean;
    w3Utils(): Utils;
    isUnlocked(): Promise<boolean>;
    getAccountAddress(): string;
    setAccounts(data: any): void;
    setResource(gas: number, gas_price: number): void;
    private _setOtherRrc;
    haveAccounts(): boolean;
    NewContractFallback(abi?: any[], address?: string): any;
    sendCoin(amount: any, toaddress: string): Promise<TransactionReceipt>;
    sendToken(amount: any, toaddress: string, erc20_address: string): Promise<void>;
    approveToken(erc20_address: string, spender_address: string, amount_sun: any): Promise<void>;
    approveTokenUnlimited(erc20_address: string, spender_address: string): Promise<void>;
    getMyTokenBalance(trc20_coin: string): Promise<number>;
    keccak256(data: any): string;
    sha(data: any): string | null;
    balance(): Promise<string>;
    getCoinPlatform(): Promise<number>;
    getMyCoinDetail(trc20_coin: string): Promise<CoinDetail>;
    coinExample(): Promise<CoinDetail>;
    initCoinDetail(erc20: string, me: string): Promise<CoinDetail>;
    getCoinDetail(erc20_address: string, address: string): Promise<CoinDetail>;
    getContractToken(erc20_address: string): Promise<Ori20Contract>;
    getTokenBalanceWei(address: string, erc20_address: string): Promise<number>;
    NewToken(erc20_address: string): Promise<Ori20Contract>;
    getListedCoins(): WebLinkTokenMap;
    explainTrc20(payload: Web3ERC20Token): number;
    eventListener(message: any, vueInstance: Vue): void;
    setHandlers(confirm: any, broadcast: any, err: any): void;
    metamask_decrypt(encryptedMessage: any, account_address: any, callback: any): void;
    metamask_message_sign_v3(message: any, resultcb: any): Promise<void>;
    metamask_message_personal_sign(message: any, resultcb: any): void;
    metamask_encryption(encryptionPublicKey: any, message: any): string;
    metamask_add_token(token_conf: WatchAssetParams): void;
    ensureChainParameterPatch(conf: AddEthereumChainParameter): AddEthereumChainParameter;
    metamask_add_chain(chain_conf: AddEthereumChainParameter): void;
    metamask_detect_chain_process_flow(conf: AddEthereumChainParameter): Promise<void>;
}
//# sourceMappingURL=BlockWrap.d.ts.map