/// import { AirGapTransactionStatus, IAirGapTransaction } from '../../interfaces/IAirGapTransaction'; import { SignedSubstrateTransaction } from '../../serializer/schemas/definitions/signed-transaction-substrate'; import { UnsignedSubstrateTransaction } from '../../serializer/schemas/definitions/unsigned-transaction-substrate'; import { RawSubstrateTransaction } from '../../serializer/types'; import { ProtocolSymbols } from '../../utils/ProtocolSymbols'; import { CurrencyUnit, FeeDefaults } from '../ICoinProtocol'; import { ICoinSubProtocol } from '../ICoinSubProtocol'; import { NonExtendedProtocol } from '../NonExtendedProtocol'; import { SubstrateTransactionType } from './common/data/transaction/SubstrateTransaction'; import { SubstrateAccountId, SubstrateCompatAddressType } from './compat/SubstrateCompatAddress'; import { SubstrateCryptoClient } from './SubstrateCryptoClient'; import { SubstrateNetwork } from './SubstrateNetwork'; import { SubstrateProtocolOptions } from './SubstrateProtocolOptions'; import { SubstrateTransactionCursor, SubstrateTransactionResult } from './SubstrateTypes'; export declare abstract class SubstrateProtocol extends NonExtendedProtocol { readonly options: SubstrateProtocolOptions; abstract symbol: string; abstract name: string; abstract marketSymbol: string; abstract feeSymbol: string; abstract decimals: number; abstract feeDecimals: number; abstract identifier: ProtocolSymbols; abstract feeDefaults: FeeDefaults; abstract units: CurrencyUnit[]; abstract standardDerivationPath: string; supportsHD: boolean; abstract addressIsCaseSensitive: boolean; addressValidationPattern: string; addressPlaceholder: string; readonly cryptoClient: SubstrateCryptoClient; constructor(options: SubstrateProtocolOptions); getBlockExplorerLinkForAddress(address: string): Promise; getBlockExplorerLinkForTxId(txId: string): Promise; getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise; getPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise; getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise; getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise; getAddressFromPublicKey(publicKey: string): Promise; getAddressesFromPublicKey(publicKey: string): Promise; getNextAddressFromPublicKey(publicKey: string, current: SubstrateCompatAddressType[Network]): Promise; getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: SubstrateTransactionCursor): Promise; getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: SubstrateTransactionCursor): Promise; signWithPrivateKey(privateKey: Buffer, rawTransaction: RawSubstrateTransaction): Promise; getTransactionDetails(transaction: UnsignedSubstrateTransaction): Promise; getTransactionDetailsFromSigned(transaction: SignedSubstrateTransaction): Promise; getBalanceOfAddresses(addresses: string[]): Promise; getAvailableBalanceOfAddresses(addresses: string[]): Promise; getBalanceOfPublicKey(publicKey: string): Promise; getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise; estimateMaxTransactionValueFromPublicKey(publicKey: string, _recipients: string[], fee?: string, data?: { excludeExistentialDeposit?: boolean; }): Promise; estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise; prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, data?: { excludeExistentialDeposit?: boolean; }): Promise; broadcastTransaction(encoded: string): Promise; getFutureRequiredTransactions(accountId: SubstrateAccountId, intention: 'check' | 'transfer' | 'delegate'): Promise<[SubstrateTransactionType, any][]>; private getTransactionDetailsFromEncoded; signMessage(message: string, keypair: { publicKey: string; privateKey: Buffer; }): Promise; verifyMessage(message: string, signature: string, publicKey: string): Promise; encryptAsymmetric(message: string, publicKey: string): Promise; decryptAsymmetric(message: string, keypair: { publicKey: string; privateKey: Buffer; }): Promise; encryptAES(message: string, privateKey: Buffer): Promise; decryptAES(message: string, privateKey: Buffer): Promise; getTransactionStatuses(transactionHashes: string[]): Promise; }