///
import { AirGapTransactionStatus, IAirGapTransaction } from '../../../interfaces/IAirGapTransaction';
import { SignedTezosTransaction } from '../../../serializer/schemas/definitions/signed-transaction-tezos';
import { UnsignedTezosTransaction } from '../../../serializer/schemas/definitions/unsigned-transaction-tezos';
import { UnsignedTezosSaplingTransaction } from '../../../serializer/schemas/definitions/unsigned-transaction-tezos-sapling';
import { RawTezosSaplingTransaction, RawTezosTransaction } from '../../../serializer/types';
import { ProtocolSymbols } from '../../../utils/ProtocolSymbols';
import { CurrencyUnit, FeeDefaults, ICoinProtocol } from '../../ICoinProtocol';
import { ICoinSubProtocol } from '../../ICoinSubProtocol';
import { NonExtendedProtocol } from '../../NonExtendedProtocol';
import { TezosContract } from '../contract/TezosContract';
import { TezosContractCall } from '../contract/TezosContractCall';
import { TezosProtocol } from '../TezosProtocol';
import { TezosTransactionParameters } from '../types/operations/Transaction';
import { TezosSaplingTransactionCursor } from '../types/sapling/TezosSaplingTransactionCursor';
import { TezosSaplingTransactionResult } from '../types/sapling/TezosSaplingTransactionResult';
import { TezosSaplingWrappedTransaction } from '../types/sapling/TezosSaplingWrappedTransaction';
import { TezosSaplingNodeClient } from './node/TezosSaplingNodeClient';
import { TezosSaplingAddress } from './TezosSaplingAddress';
import { TezosSaplingCryptoClient } from './TezosSaplingCryptoClient';
import { TezosSaplingProtocolOptions } from './TezosSaplingProtocolOptions';
import { TezosSaplingBookkeeper } from './utils/TezosSaplingBookkeeper';
import { TezosSaplingEncoder } from './utils/TezosSaplingEncoder';
import { TezosSaplingForger } from './utils/TezosSaplingForger';
import { TezosSaplingState } from './utils/TezosSaplingState';
export declare abstract class TezosSaplingProtocol extends NonExtendedProtocol implements ICoinProtocol {
readonly options: TezosSaplingProtocolOptions;
private static readonly TRANSACTION_PLACEHOLDER;
readonly symbol: string;
readonly name: string;
readonly marketSymbol: string;
readonly feeSymbol: string;
readonly feeDefaults: FeeDefaults;
readonly decimals: number;
readonly feeDecimals: number;
readonly identifier: ProtocolSymbols;
readonly units: CurrencyUnit[];
readonly supportsHD: boolean;
readonly standardDerivationPath: string;
readonly addressIsCaseSensitive: boolean;
readonly addressValidationPattern: string;
readonly addressPlaceholder: string;
readonly cryptoClient: TezosSaplingCryptoClient;
readonly nodeClient: TezosSaplingNodeClient;
readonly contract: TezosContract;
readonly bookkeeper: TezosSaplingBookkeeper;
readonly encoder: TezosSaplingEncoder;
readonly forger: TezosSaplingForger;
readonly state: TezosSaplingState;
protected readonly tezosProtocol: TezosProtocol;
constructor(options: TezosSaplingProtocolOptions);
abstract prepareContractCalls(transactions: TezosSaplingWrappedTransaction[]): Promise;
abstract parseParameters(parameters: TezosTransactionParameters): Promise;
initParameters(spendParams: Buffer, outputParams: Buffer): Promise;
getBlockExplorerLinkForTxId(txId: string): Promise;
getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string | undefined): Promise;
getPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string | undefined): Promise;
private getSeedFromMnemonic;
getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise;
getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise;
getAddressFromPublicKey(viewingKey: string): Promise;
getAddressesFromPublicKey(viewingKey: string): Promise;
getAddressFromViewingKey(viewingKey: string, index: string): Promise;
getNextAddressFromPublicKey(viewingKey: string, current: TezosSaplingAddress): Promise;
getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: TezosSaplingTransactionCursor): Promise;
signWithPrivateKey(privateKey: Buffer, transaction: RawTezosSaplingTransaction): Promise;
getTransactionDetails(transaction: UnsignedTezosTransaction | UnsignedTezosSaplingTransaction, data?: {
knownViewingKeys: string[];
}): Promise;
getTransactionDetailsFromSigned(transaction: SignedTezosTransaction, data?: {
knownViewingKeys: string[];
}): Promise;
private getTransactionDetailsFromWrappedOperation;
private getPartialDetailsFromContractParameters;
private filterOutPaybacks;
getBalanceOfPublicKey(publicKey: string): Promise;
getTransactionStatuses(transactionHash: string[]): Promise;
estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string | undefined): Promise;
prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, data?: any): Promise;
wrapSaplingTransactions(publicKey: string, transactions: TezosSaplingWrappedTransaction[] | string, fee: string, overrideFees?: boolean): Promise;
private prepareTezosOperation;
prepareShieldTransaction(publicKey: string, recipient: string, value: string, fee: string, data?: {
overrideFees?: boolean;
}): Promise;
prepareUnshieldTransaction(viewingKey: string, recipient: string, value: string, data?: any): Promise;
prepareSaplingTransaction(viewingKey: string, recipient: string, value: string, data?: any): Promise;
private chooseInputs;
private preparePartialContractCall;
private createDummyInput;
private createDummyOutput;
private getDummyAddress;
private getAntiReplay;
broadcastTransaction(rawTransaction: any): Promise;
signMessage(message: string, keypair: {
publicKey?: string | undefined;
privateKey: Buffer;
}): Promise;
verifyMessage(message: string, signature: string, publicKey: string): Promise;
encryptAsymmetric(payload: string, publicKey: string): Promise;
decryptAsymmetric(encryptedPayload: string, keypair: {
publicKey?: string | undefined;
privateKey: Buffer;
}): Promise;
encryptAES(payload: string, privateKey: Buffer): Promise;
decryptAES(encryptedPayload: string, privateKey: Buffer): Promise;
getBlockExplorerLinkForAddress(address: string): Promise;
getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: TezosSaplingTransactionCursor): Promise;
getBalanceOfAddresses(addresses: string[]): Promise;
getAvailableBalanceOfAddresses(addresses: string[]): Promise;
getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise;
estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise;
private isRawTezosSaplingTransaction;
}