import { Account, Address, PublicClient, WalletClient, Hash } from 'viem';
type PreparedContractRequest = any;
export declare class Erc20Service {
    private readonly publicClient;
    private readonly walletClient?;
    private readonly account?;
    constructor(publicClient: PublicClient, walletClient?: WalletClient, account?: Account | Address);
    private ensureWalletClient;
    private ensureAccount;
    getTokenBalance(tokenAddress: Address, account: Address): Promise<bigint>;
    getTokenAllowance(tokenAddress: Address, owner: Address, spender: Address): Promise<bigint>;
    prepareApprove(tokenAddress: Address, spender: Address, amount: bigint): Promise<PreparedContractRequest>;
    approve(tokenAddress: Address, spender: Address, amount: bigint): Promise<Hash>;
}
export {};
