/// <reference types="node" />
import type BN from 'bn.js';
import type Web3 from 'web3';
import type { Contract } from 'web3-eth-contract';
import type { AbiItem } from 'web3-utils';
import type { EthWeb3Manager } from '../ethWeb3Manager';
export declare class AudiusTokenClient {
    ethWeb3Manager: EthWeb3Manager;
    contractABI: AbiItem[];
    contractAddress: string;
    web3: Web3;
    AudiusTokenContract: Contract;
    bustCacheNonce: number;
    constructor(ethWeb3Manager: EthWeb3Manager, contractABI: AbiItem[], contractAddress: string);
    bustCache(): Promise<void>;
    balanceOf(account: string): Promise<BN>;
    name(): Promise<any>;
    nonces(wallet: string): Promise<number>;
    transfer(recipient: string, amount: BN): Promise<{
        txReceipt: import("web3-core").TransactionReceipt;
    }>;
    transferFrom(owner: string, recipient: string, relayer: string, amount: BN): Promise<{
        txReceipt: import("../../utils").Maybe<{
            txHash: string;
            txParams: {
                data: string;
                gasLimit: string;
                gasPrice: number;
                nonce: string;
                to: string;
                value: string;
            };
        }>;
    }>;
    permit(owner: string, // address
    spender: string, // address
    value: BN, // uint
    deadline: number, // uint
    v: number, // uint8
    r: Uint8Array | Buffer, // bytes32
    s: Uint8Array | Buffer): Promise<import("../../utils").Maybe<{
        txHash: string;
        txParams: {
            data: string;
            gasLimit: string;
            gasPrice: number;
            nonce: string;
            to: string;
            value: string;
        };
    }>>;
    approve(spender: string, value: BN, privateKey?: null): Promise<{
        txReceipt: import("web3-core").TransactionReceipt;
    }>;
    approveProxyTokens(owner: string, spender: string, value: BN, relayer: string): Promise<{
        txReceipt: import("../../utils").Maybe<{
            txHash: string;
            txParams: {
                data: string;
                gasLimit: string;
                gasPrice: number;
                nonce: string;
                to: string;
                value: string;
            };
        }>;
    }>;
}
