import { Signer } from "ethers";
import { ContractModel } from "./contract-model";
import { ContractTxOption, Waitable } from "../common/interfaces";
export interface IERC20Model extends ContractModel {
    name(): Promise<string>;
    symbol(): Promise<string>;
    decimals(): Promise<string>;
    balanceOf(address: string): Promise<string>;
    mint(address: string, amount: string, options?: ContractTxOption): Promise<Waitable>;
    burn(amount: string, options?: ContractTxOption): Promise<Waitable>;
    burnFrom(address: string, amount: string, options?: ContractTxOption): Promise<Waitable>;
}
export declare class ERC20ContractModel extends ContractModel implements IERC20Model {
    constructor(address: string, abi: any, signer: Signer);
    transfer(address: string, amount: string, options?: ContractTxOption): Promise<Waitable>;
    balanceOf(address: string): Promise<string>;
    name(): Promise<string>;
    symbol(): Promise<string>;
    decimals(): Promise<string>;
    mint(address: string, amount: string, options?: ContractTxOption): Promise<Waitable>;
    burn(amount: string, options?: ContractTxOption): Promise<Waitable>;
    burnFrom(address: string, amount: string, options?: ContractTxOption): Promise<Waitable>;
}
