import { Account, AccountWithTransactions, App, Block, GetAppOptions, GetNodesOptions, Node, TransactionResponse } from '@pokt-foundation/pocketjs-types';
export declare abstract class AbstractProvider {
    abstract getBalance(address: string | Promise<string>): Promise<bigint>;
    abstract getTransactionCount(address: string | Promise<string>): Promise<number>;
    abstract getType(address: string | Promise<string>): Promise<'node' | 'app' | 'account'>;
    abstract sendTransaction(signerAddress: string | Promise<string>, signedTransaction: string | Promise<string>): Promise<TransactionResponse>;
    abstract getBlock(blockNumber: number): Promise<Block>;
    abstract getTransaction(transactionHash: string): Promise<TransactionResponse>;
    abstract getBlockNumber(): Promise<number>;
    abstract getNodes(getNodesOptions: GetNodesOptions): Promise<Node[]>;
    abstract getNode(address: string | Promise<string>, options: GetNodesOptions): Promise<Node>;
    abstract getApps(getAppOption: GetAppOptions): Promise<App[]>;
    abstract getApp(address: string | Promise<string>, options: GetAppOptions): Promise<App>;
    abstract getAccount(address: string | Promise<string>): Promise<Account>;
    abstract getAccountWithTransactions(address: string | Promise<string>): Promise<AccountWithTransactions>;
}
//# sourceMappingURL=abstract-provider.d.ts.map