import { BaseBlockchain } from './base-blockchain.js'; import { type AddressCallback, type TransactionCallback, type BlockchainTransaction, type BlockchainUTXO, type BlockchainUTXOs } from './types.js'; import { ExtMap, Transaction } from '@xocash/primitives'; import { type Output } from '@bitauth/libauth'; export declare class BlockchainLocal extends BaseBlockchain { private transactions; private addressSubscriptions; private transactionSubscriptions; constructor(); start(): Promise; stop(): Promise; fetchUnspents(address: string): Promise>; fetchTransaction(txHash: string): Promise; fetchTransactions(address: string): Promise>; broadcastTransaction(tx: Transaction | Uint8Array | string, opts?: { skipValidation: boolean; }): Promise; subscribeAddress(address: string, callback: AddressCallback): Promise; unsubscribeAddress(address: string, callback: AddressCallback): Promise; subscribeTransaction(transactionHash: string, callback: TransactionCallback): Promise; unsubscribeTransaction(transactionHash: string, callback: TransactionCallback): Promise; private notifyAddressSubscribers; private notifyTransactionSubscribers; addTransaction(tx: BlockchainTransaction): void; removeTransaction(txHash: string): void; deriveUtxoSet(): BlockchainUTXOs; /** * @remarks Consider moving this to Transaction Primitive. Trade-off is that it's probably big. Maybe standalone util? */ static validateTransaction(tx: Transaction, sourceOutputs: Array): void; }