import { AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, ExtendedKeyPair, ExtendedPublicKey, ExtendedSecretKey, FeeDefaults, KeyPair, ProtocolMetadata, PublicKey, RecursivePartial, SecretKey, Signature, TransactionFullConfiguration, TransactionDetails, TransactionSimpleConfiguration, Address, UnsignedTransaction } from '@airgap/module-kit'; import * as bitcoin from 'bitcoinjs-lib'; import { BitcoinCryptoConfiguration } from '../types/crypto'; import { BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnits } from '../types/protocol'; import { BitcoinTaprootSignedTransaction, BitcoinTaprootUnsignedTransaction, BitcoinTransactionCursor, TaprootTransactionFullConfiguration } from '../types/transaction'; import { BitcoinProtocol } from './BitcoinProtocol'; export interface BitcoinTaprootProtocol extends BitcoinProtocol { _isBitcoinTaprootProtocol: true; prepareTransactionWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails[], configuration: TaprootTransactionFullConfiguration): Promise; } export declare class BitcoinTaprootProtocolImpl implements BitcoinTaprootProtocol { readonly _isBitcoinProtocol: true; readonly _isBitcoinTaprootProtocol: true; private readonly segwit; private readonly options; private readonly bitcoinJS; private readonly bip32; constructor(options?: RecursivePartial, bitcoinJS?: typeof bitcoin); private readonly metadata; prepareTransactionWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails[], configuration: TaprootTransactionFullConfiguration): Promise; prepareTransactionWithNonExtendedPublicKey(publicKey: PublicKey, details: TransactionDetails[], configuration: TaprootTransactionFullConfiguration): Promise; getCryptoConfiguration(): Promise; getKeyPairFromDerivative(derivative: CryptoDerivative): Promise; signTransactionWithSecretKey(transaction: BitcoinTaprootUnsignedTransaction, secretKey: SecretKey | ExtendedSecretKey): Promise; signTransactionWithExtendedSecretKey(transaction: BitcoinTaprootUnsignedTransaction, secretKey: ExtendedSecretKey): Promise; signTransactionWithNonExtendedSecretKey(transaction: UnsignedTransaction, secretKey: SecretKey): Promise; getMetadata(): Promise>; getAddressFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise; getAddressFromExtendedPublicKey(extendedPublicKey: ExtendedPublicKey): Promise; getDetailsFromTransaction(transaction: BitcoinTaprootSignedTransaction | BitcoinTaprootUnsignedTransaction, _publicKey: PublicKey | ExtendedPublicKey): Promise[]>; getDetailsFromPSBT(psbt: string, publicKey: any): Promise[]>; getNetwork(): Promise; getTransactionsForPublicKey(publicKey: ExtendedPublicKey | PublicKey, limit: number, cursor?: BitcoinTransactionCursor): Promise>; private getTransactionsForNonExtendedPublicKey; private getTransactionsForExtendedPublicKey; getTransactionsForAddress(address: string, limit: number, cursor?: BitcoinTransactionCursor): Promise>; getTransactionsForAddresses(addresses: string[], limit: number, cursor?: BitcoinTransactionCursor): Promise>; getBalanceOfPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise>; private getBalanceOfNonExtendedPublicKey; private getBalanceOfExtendedPublicKey; getTransactionMaxAmountWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, to: Address[], configuration?: TransactionFullConfiguration | undefined): Promise>; getTransactionFeeWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails[], configuration?: TransactionSimpleConfiguration): Promise>; broadcastTransaction(transaction: BitcoinTaprootSignedTransaction): Promise; getExtendedKeyPairFromDerivative(derivative: CryptoDerivative): Promise; private derivativeToBip32Node; private convertCryptoDerivative; deriveFromExtendedSecretKey(extendedSecretKey: ExtendedSecretKey, visibilityIndex: number, addressIndex: number): Promise; deriveFromExtendedPublicKey(extendedPublicKey: ExtendedPublicKey, visibilityIndex: number, addressIndex: number): Promise; signMessageWithKeyPair(message: string, keyPair: KeyPair | ExtendedKeyPair): Promise; verifyMessageWithPublicKey(message: string, signature: Signature, publicKey: PublicKey | ExtendedPublicKey): Promise; decryptAsymmetricWithKeyPair(payload: string, keyPair: KeyPair | ExtendedKeyPair): Promise; encryptAsymmetricWithPublicKey(payload: string, publicKey: PublicKey | ExtendedPublicKey): Promise; encryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise; decryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise; getBalanceOfAddress(address: Address, configuration?: undefined): Promise>; getBalanceOfAddresses(addresses: Address[], configuration?: undefined): Promise>; private getAddressFromNonExtendedPublicKey; private prepareTransactionWithExtendedPublicKey; } export declare function createBitcoinTaprootProtocol(options?: RecursivePartial): BitcoinTaprootProtocol;