export interface ICryptoWalletConnectionService { readonly hasEthereumProvider: boolean; readonly hasEventsSupport: boolean; readonly isMetamaskInstalled: boolean; readonly isSemiCompliantEthereumProviderInstalled: boolean; // Getters readEthereumBalance: (address: string) => Promise; didUserApproveDappInThePast: boolean; readMainAddress: () => Promise; readCurrentBlockNumber: () => Promise; getIsMainNetwork: () => Promise; requestConnectionPermission: () => Promise; // Event listeners onMainAddressChange: (onChange: (mainAddress: string) => void) => () => void; }