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