import Application from "../../models/Application" ; export interface PrivateKey { mnemonic : string ; address : string ; privateKey : string ; } export interface Account { fullName : string ; address : string ; profilePic : string ; wallpaper : string ; currencyTicker : string ; balance : string ; } export default interface IProvider { createRandomPrivateKey : ( ) => PrivateKey ; fromMnemonic : ( mnemonic : string ) => PrivateKey ; keysFromStorage : ( ) => PrivateKey ; saveKeys : ( key : PrivateKey ) => void ; getAccountInfo ( address ) : Promise < Account > ; getInstalledApplications ( key ) : Promise < Application [ ] > ; login ( ) : Promise < Account > ; logout ( ) : Promise < void > ; isLoggedIn ( ) : Promise < boolean > ; getPrivateKeyForApp ( appId , nonce , userKeys ) : PrivateKey ; storageSet ( key , value ) : Promise < void > ; storageGet ( key ) : Promise < string > ; uploadFile ( data ) : Promise < string > ; fetchFile ( id ) : Promise < Buffer > ; addApplicationToStore ( app ) : Promise < void > ; }