import { Account, AccountWithTransactions, App, Block, GetAppOptions, GetNodesOptions, Node, TransactionResponse, } from '@crisog/pocketjs-types' export abstract class AbstractProvider { // Account abstract getBalance(address: string | Promise): Promise abstract getTransactionCount( address: string | Promise ): Promise abstract getType( address: string | Promise ): Promise<'node' | 'app' | 'account'> // Txs abstract sendTransaction( signerAddress: string | Promise, signedTransaction: string | Promise ): Promise // Network abstract getBlock(blockNumber: number): Promise abstract getTransaction(transactionHash: string): Promise abstract getBlockNumber(): Promise abstract getNodes(getNodesOptions: GetNodesOptions): Promise abstract getNode( address: string | Promise, options: GetNodesOptions ): Promise abstract getApps(getAppOption: GetAppOptions): Promise abstract getApp( address: string | Promise, options: GetAppOptions ): Promise abstract getAccount(address: string | Promise): Promise abstract getAccountWithTransactions( address: string | Promise ): Promise // TODO: Add methods for params/requestChallenge }