export interface ERC20Token {
    chainId: number;
    erc20TokenAddress: string;
    wrappedErc20TokenAddress?: string;
    underlyingErc20TokenAddress?: string;
    name: string;
    symbol: string;
    decimals: number;
    nftTokenType?: string;
    logoURI?: string;
    logoURIs?: string[];
    whitelisted?: boolean;
    isCustom?: true;
    tokenIds?: string[];
    approvalType?: ApprovalType;
    isVolatile?: boolean;
    sharedAddress?: string;
    isPendleToken?: boolean;
    isHToken?: boolean;
    hasHToken?: boolean;
    aaveToken?: boolean;
    allowanceStorageOffset?: number;
    balanceStorageOffset?: number;
    isVyper?: boolean;
    isSpam?: boolean;
    is2022Program?: boolean;
}
export declare enum ApprovalType {
    Classic = 0,
    ERC20Permit = 1,
    DAIPermit = 2
}
export interface NFT {
    tokenId: number;
    image?: string;
    name?: string;
    timestamp?: string;
}
export interface TokenBalance {
    token: ERC20Token;
    balance: bigint;
    timestamp?: string;
    nfts?: NFT[];
}
export interface TokenBalanceWithUsdValue extends TokenBalance {
    isBalanceLoading?: boolean;
    usdValue?: number;
    isUsdValueLoading?: boolean;
}
export interface PublicTokenBalances {
    publicTokenBalances: TokenBalance[];
    isPublicBalancesLoading: boolean;
}
export interface PublicTokenBalancesWithUsd {
    publicTokenBalancesWithUSD: TokenBalanceWithUsdValue[];
    publicTotalUSDBalances: number;
    isPublicBalancesLoading: boolean;
    isUsdBalanceLoading: boolean;
}
export interface TokenChanges<T = number> {
    token: ERC20Token;
    amount: T;
    nftIds?: string[];
}
export interface GasTokensInfoEntry {
    token: ERC20Token;
    balance: string;
    dollarValue: number;
    isLoading: boolean;
    isInsufficientGasBalance: boolean;
    disabled: boolean;
}
export type VolatileTokenChange = {
    tokenAddress: string;
    amount: string;
    targetAddress?: string;
    originalIndex: number;
};
export interface PrivateRecipientInfo {
    recipientInfo: string;
    amount: bigint;
    token: ERC20Token;
}
export interface TemporaryWalletBalance extends TokenBalanceWithUsdValue {
    nonce: number;
    ethAddress: string;
    privateKey: string;
}
