import { AirGapInterface, RecursivePartial } from '@airgap/module-kit'; import { EthereumInfoClient } from '../../clients/info/EthereumInfoClient'; import { EthereumNodeClient } from '../../clients/node/EthereumNodeClient'; import { ERC20TokenMetadata, ERC20TokenOptions, EthereumProtocolNetwork } from '../../types/protocol'; import { ERC20Protocol, ERC20ProtocolImpl } from './ERC20Protocol'; export interface ERC20Token<_ProtocolNetwork extends EthereumProtocolNetwork = EthereumProtocolNetwork> extends AirGapInterface, 'SingleTokenSubProtocol'> { } export declare class ERC20TokenImpl<_ProtocolNetwork extends EthereumProtocolNetwork = EthereumProtocolNetwork> extends ERC20ProtocolImpl implements ERC20Token<_ProtocolNetwork> { constructor(nodeClient: EthereumNodeClient, infoClient: EthereumInfoClient, options: ERC20TokenOptions<_ProtocolNetwork>); getType(): Promise<'token'>; private readonly _mainProtocol; mainProtocol(): Promise; getContractAddress(): Promise; } declare type ERC20TokenOptionsWithoutMetadata = Omit; export declare function createERC20Token(metadata: ERC20TokenMetadata, options?: RecursivePartial): ERC20Token; export declare const ETHEREUM_ERC20_MAINNET_PROTOCOL_NETWORK: EthereumProtocolNetwork; export declare function createERC20TokenOptions(metadata: ERC20TokenMetadata, network?: Partial, mainIdentifier?: string): ERC20TokenOptions; export {};