import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, ExtendedKeyPair, ExtendedPublicKey, ExtendedSecretKey, FeeDefaults, KeyPair, ProtocolMetadata, PublicKey, RecursivePartial, SecretKey, Signature, TransactionFullConfiguration, TransactionDetails, TransactionSimpleConfiguration } from '@airgap/module-kit'; import { GroestlcoinCryptoConfiguration } from '../types/crypto'; import { GroestlcoinProtocolNetwork, GroestlcoinProtocolOptions, GroestlcoinStandardProtocolNetwork, GroestlcoinUnits } from '../types/protocol'; import { GroestlcoinSignedTransaction, GroestlcoinTransactionCursor, GroestlcoinUnsignedTransaction } from '../types/transaction'; export interface GroestlcoinProtocol extends AirGapProtocol<{ AddressResult: Address; ProtocolNetwork: GroestlcoinProtocolNetwork; CryptoConfiguration: GroestlcoinCryptoConfiguration; SignedTransaction: GroestlcoinSignedTransaction; TransactionCursor: GroestlcoinTransactionCursor; Units: GroestlcoinUnits; FeeEstimation: FeeDefaults; UnsignedTransaction: GroestlcoinUnsignedTransaction; }, 'Bip32', 'Crypto', 'FetchDataForAddress', 'FetchDataForMultipleAddresses'> { } export declare class GroestlcoinProtocolImpl implements GroestlcoinProtocol { private readonly options; private readonly bitcoinProtocol; constructor(options: RecursivePartial); private readonly units; private readonly feeDefaults; private readonly metadata; getMetadata(): Promise>; getAddressFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise; deriveFromExtendedPublicKey(extendedPublicKey: ExtendedPublicKey, visibilityIndex: number, addressIndex: number): Promise; getDetailsFromTransaction(transaction: GroestlcoinSignedTransaction | GroestlcoinUnsignedTransaction, publicKey: PublicKey | ExtendedPublicKey): Promise[]>; verifyMessageWithPublicKey(message: string, signature: Signature, publicKey: PublicKey | ExtendedPublicKey): Promise; encryptAsymmetricWithPublicKey(payload: string, publicKey: PublicKey | ExtendedPublicKey): Promise; getCryptoConfiguration(): Promise; getKeyPairFromDerivative(derivative: CryptoDerivative): Promise; getExtendedKeyPairFromDerivative(derivative: CryptoDerivative): Promise; deriveFromExtendedSecretKey(extendedSecretKey: ExtendedSecretKey, visibilityIndex: number, addressIndex: number): Promise; signTransactionWithSecretKey(transaction: GroestlcoinUnsignedTransaction, secretKey: SecretKey | ExtendedSecretKey): Promise; signMessageWithKeyPair(message: string, keyPair: KeyPair | ExtendedKeyPair): Promise; decryptAsymmetricWithKeyPair(payload: string, keyPair: KeyPair | ExtendedKeyPair): Promise; encryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise; decryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise; getNetwork(): Promise; getTransactionsForPublicKey(publicKey: PublicKey | ExtendedPublicKey, limit: number, cursor?: GroestlcoinTransactionCursor): Promise>; getTransactionsForAddress(address: string, limit: number, cursor?: GroestlcoinTransactionCursor): Promise>; getTransactionsForAddresses(addresses: string[], limit: number, cursor?: GroestlcoinTransactionCursor): Promise>; getBalanceOfPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise>; getBalanceOfAddress(address: string): Promise>; getBalanceOfAddresses(addresses: string[]): Promise>; getTransactionMaxAmountWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, to: string[], configuration?: TransactionFullConfiguration): Promise>; getTransactionFeeWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails[], configuration?: TransactionSimpleConfiguration): Promise>; prepareTransactionWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails[], configuration?: TransactionFullConfiguration): Promise; broadcastTransaction(transaction: GroestlcoinSignedTransaction): Promise; private fromBitcoinAirGapTransaction; private fromBitcoinAirGapTransactionWithCursor; private fromBitcoinBalance; private fromBitcoinFeeEstimation; private fromBitcoinAmount; private toBitcoinTransactionDetails; private toBitcoinAmount; private bitcoinUnits; private getBitcoinUnits; private convertAmount; } export declare function createGroestlcoinProtocol(options?: RecursivePartial): GroestlcoinProtocol; export declare const GROESTLCOIN_MAINNET_PROTOCOL_NETWORK: GroestlcoinStandardProtocolNetwork; export declare const GROESTLCOIN_TESTNET_PROTOCOL_NETWORK: GroestlcoinStandardProtocolNetwork; export declare function createGroestlcoinProtocolOptions(network?: Partial): GroestlcoinProtocolOptions;