import { CallOverrides } from "@ethersproject/contracts";
import { ChainId } from "../chain";
import { ContractAddressId, ContractService, WrappedContract } from "../common";
import { Address, ERC20, TokenAllowance, TokenBalance, TokenPrice } from "../types";
/**
 * [[HelperService]] is a generalized containers for all the utilities that are
 * used in the lens codebase and in the SDK.
 */
export declare class HelperService<T extends ChainId> extends ContractService<T> {
    static abi: string[];
    static contractId: ContractAddressId;
    get contract(): Promise<WrappedContract>;
    /**
     * Get a list of [[ERC20]] objects for a list of token addresses.
     * @param addresses
     * @param overrides
     * @returns list of erc20 object
     */
    tokens(addresses: Address[], overrides?: CallOverrides): Promise<ERC20[]>;
    /**
     * Get a list of token prices for a list of token addresses.
     * @param addresses
     * @param overrides
     * @returns list of token prices
     */
    tokenPrices(addresses: Address[], overrides?: CallOverrides): Promise<TokenPrice[]>;
    /**
     * Get a list of token balances from a list of token addresses for a
     * particular address.
     * @param address
     * @param tokens
     * @param overrides
     * @returns list of token balances
     */
    tokenBalances(address: Address, tokens: Address[], overrides?: CallOverrides): Promise<TokenBalance[]>;
    /**
     * Get a list of token allowances for a list of token addresses and spenders
     * for a particular address.
     * @param address
     * @param tokens
     * @param spenders
     * @param overrides
     * @returns
     */
    tokenAllowances(address: Address, tokens: Address[], spenders: Address[], overrides?: CallOverrides): Promise<TokenAllowance[]>;
    assetStrategiesAddresses(address: Address, overrides?: CallOverrides): Promise<Address[]>;
}
