import { VerifiedContract, Options } from "../index";
import { VerifiedWallet } from "../../wallet";
export default class Cash extends VerifiedContract {
    contractAddress: string;
    constructor(signer: VerifiedWallet, currencyAddress: string);
    _getMeeQuote(paymentTokenAddress: string, functionName: string, args: any[], apiKey?: string, rpcUrl?: string): Promise<{
        tokenAddress: string;
        amount: string;
        amountInWei: string;
        amouuntValue: string;
        chainId: number;
        functionName: string;
    }>;
    /**
     * Request pay out [callable by manager]
     * @param (uint256 _tokens, address _payer, bytes32 _currency, address _sender)
     * @returns boolean
     */
    payIn(_tokens: string, _payer: string, _currency: string, options?: Options): any;
    requestIssue(_amount: string, _buyer: string, _currency: string, options?: Options): any;
    burnCashTokens(_tokens: string, _payer: string, _currency: string, options?: Options): any;
    /**
     * An investor can also request cash tokens from Verified by paying in another cash token.
     * For example, an investor can request a USD cash token by paying in a EUR cash token.
     * where, the sender is the address of cash token paid in, the receiver is the address of the cash token converted to
     * and the tokens parameter is a numeric specifying number of cash tokens paid in.
     * @param (address sender, address receiver, uint256 tokens)
     * @returns boolean
     */
    transferFrom(_senderAddress: string, _recieverAddress: string, _tokens: string, options?: Options): any;
    balanceOf(_wallet: string, options?: Options): any;
    name(): any;
    symbol(): any;
    decimals(): any;
    totalSupply(): any;
    transfer(_recipient: string, _amount: string, options?: Options): any;
    approve(_spender: string, _amount: string, options?: Options): any;
    allowance(_owner: string, _spender: string, options?: Options): any;
    increaseAllowance(_spender: string, _addedValue: string, options?: Options): any;
    decreaseAllowance(_spender: string, _subtractedValue: string, options?: Options): any;
    notifyCashIssue(callback: any): object;
    notifyCashRedemption(callback: any): object;
    notifyCashTransfer(callback: any): object;
    notifyCashExchange(callback: any): object;
}
