import { AirGapTransactionStatus, IAirGapTransactionResult } from '../interfaces/IAirGapTransaction'; import { IProtocolTransactionCursor } from './../interfaces/IAirGapTransaction'; import { FeeDefaults, ICoinBaseProtocol } from './ICoinBaseProtocol'; import { ICoinSubProtocol } from './ICoinSubProtocol'; export interface ICoinOnlineProtocol extends ICoinBaseProtocol { getBlockExplorerLinkForAddress(address: string): Promise; getBlockExplorerLinkForTxId(txId: string): Promise; getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: IProtocolTransactionCursor): Promise; getTransactionsFromExtendedPublicKey(extendedPublicKey: string, limit: number, cursor?: IProtocolTransactionCursor): Promise; getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: IProtocolTransactionCursor): Promise; getBalanceOfAddresses(addresses: string[], data?: { [key: string]: unknown; }): Promise; getBalanceOfPublicKey(publicKey: string, data?: { addressIndex?: number; [key: string]: unknown; }): Promise; getBalanceOfExtendedPublicKey(extendedPublicKey: string, offset: number, data?: { [key: string]: unknown; }): Promise; getAvailableBalanceOfAddresses(addresses: string[], data?: { [key: string]: unknown; }): Promise; getTransactionStatuses(transactionHash: string[]): Promise; getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise; estimateMaxTransactionValueFromExtendedPublicKey(extendedPublicKey: string, recipients: string[], fee?: string, data?: { [key: string]: unknown; }): Promise; estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string, data?: { addressIndex?: number; [key: string]: unknown; }): Promise; estimateFeeDefaultsFromExtendedPublicKey(publicKey: string, recipients: string[], values: string[], data?: { [key: string]: unknown; }): Promise; estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: { [key: string]: unknown; }): Promise; prepareTransactionFromExtendedPublicKey(extendedPublicKey: string, offset: number, recipients: string[], values: string[], fee: string, extras?: { [key: string]: unknown; }): Promise; prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, extras?: { [key: string]: unknown; }): Promise; broadcastTransaction(rawTransaction: any): Promise; }