///
import { KeyPair } from '../../data/KeyPair';
import BigNumber from '../../dependencies/src/bignumber.js-9.0.0/bignumber';
import { AirGapTransactionStatus, IAirGapTransaction } from '../../interfaces/IAirGapTransaction';
import { SignedCosmosTransaction } from '../../serializer/schemas/definitions/signed-transaction-cosmos';
import { UnsignedCosmosTransaction } from '../../serializer/types';
import { ProtocolSymbols } from '../../utils/ProtocolSymbols';
import { DelegateeDetails, DelegationDetails, DelegatorDetails, ICoinDelegateProtocol } from '../ICoinDelegateProtocol';
import { CurrencyUnit, FeeDefaults } from '../ICoinProtocol';
import { ICoinSubProtocol } from '../ICoinSubProtocol';
import { NonExtendedProtocol } from '../NonExtendedProtocol';
import { CosmosAddress } from './CosmosAddress';
import { CosmosCryptoClient } from './CosmosCryptoClient';
import { CosmosDelegation, CosmosNodeClient, CosmosUnbondingDelegation, CosmosValidator } from './CosmosNodeClient';
import { CosmosProtocolOptions } from './CosmosProtocolOptions';
import { CosmosTransaction } from './CosmosTransaction';
import { CosmosTransactionCursor, CosmosTransactionResult } from './CosmosTypes';
export declare enum CosmosDelegationActionType {
DELEGATE = "delegate",
UNDELEGATE = "undelegate",
WITHDRAW_ALL_REWARDS = "withdraw_all_rewards",
WITHDRAW_VALIDATOR_REWARDS = "withdraw_validator_rewards"
}
export declare class CosmosProtocol extends NonExtendedProtocol implements ICoinDelegateProtocol {
readonly options: CosmosProtocolOptions;
symbol: string;
name: string;
marketSymbol: string;
feeSymbol: string;
feeDefaults: FeeDefaults;
decimals: number;
feeDecimals: number;
identifier: ProtocolSymbols;
units: CurrencyUnit[];
supportsHD: boolean;
standardDerivationPath: string;
addressIsCaseSensitive: boolean;
addressValidationPattern: string;
addressPlaceholder: string;
subProtocols?: ICoinSubProtocol[];
private readonly defaultGas;
readonly cryptoClient: CosmosCryptoClient;
get nodeClient(): CosmosNodeClient;
constructor(options?: CosmosProtocolOptions);
getBlockExplorerLinkForAddress(address: string): Promise;
getBlockExplorerLinkForTxId(txId: string): Promise;
generateKeyPair(mnemonic: string, derivationPath?: string, password?: string): KeyPair;
private generateKeyPairFromNode;
getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise;
getPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise;
getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise;
getPublicKeyFromPrivateKey(privateKey: Buffer): Buffer;
getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise;
getAddressFromPublicKey(publicKey: string): Promise;
getAddressesFromPublicKey(publicKey: string): Promise;
getNextAddressFromPublicKey(publicKey: string, current: CosmosAddress): Promise;
getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: CosmosTransactionCursor): Promise;
getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: CosmosTransactionCursor): Promise;
signWithPrivateKey(privateKey: Buffer, transaction: CosmosTransaction): Promise;
getTransactionDetails(transaction: UnsignedCosmosTransaction): Promise;
getTransactionDetailsFromSigned(transaction: SignedCosmosTransaction): Promise;
getBalanceOfAddresses(addresses: string[]): Promise;
getBalanceOfPublicKey(publicKey: string): Promise;
getAvailableBalanceOfAddresses(addresses: string[]): Promise;
getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise;
private getBalance;
estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string): Promise;
estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise;
prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, data?: {
memo?: string;
}): Promise;
getDefaultDelegatee(): Promise;
getCurrentDelegateesForPublicKey(publicKey: string): Promise;
getCurrentDelegateesForAddress(address: string): Promise;
getDelegateeDetails(address: string): Promise;
isPublicKeyDelegating(publicKey: string): Promise;
isAddressDelegating(address: string): Promise;
getDelegatorDetailsFromPublicKey(publicKey: string): Promise;
getDelegatorDetailsFromAddress(address: string): Promise;
getDelegationDetailsFromPublicKey(publicKey: string, delegatees: string[]): Promise;
getDelegationDetailsFromAddress(address: string, delegatees: string[]): Promise;
prepareDelegatorActionFromPublicKey(publicKey: string, type: CosmosDelegationActionType, data?: any): Promise;
undelegate(publicKey: string, validatorAddress: string, amount: string, memo?: string): Promise;
delegate(publicKey: string, validatorAddress: string | string[], amount: string, undelegate?: boolean, memo?: string): Promise;
withdrawDelegationRewards(publicKey: string, _validatorAddresses?: string[], memo?: string): Promise;
withdrawAllDelegationRewards(delegatorAddress: string, fee: BigNumber, memo?: string): Promise;
fetchTotalReward(delegatorAddress: string): Promise;
fetchRewardForDelegation(delegatorAddress: string, validatorAddress: string): Promise;
fetchDelegations(address: string): Promise;
fetchTotalDelegatedAmount(address: string): Promise;
fetchValidator(address: string): Promise;
fetchUnbondingDelegations(delegatorAddress: string): Promise;
fetchTotalUnbondingAmount(address: string): Promise;
fetchValidators(): Promise;
fetchSelfDelegation(address: string): Promise;
broadcastTransaction(rawTransaction: string): Promise;
private getDelegatorDetails;
private getAvailableDelegatorActions;
signMessage(message: string, keypair: {
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;
}