import { type EventEmitter } from 'eventemitter3'; import type { Wallet } from '@wallet-standard/base'; import type { ApprovalQuorumRequestContext } from '@dynamic-labs-wallet/core'; import { Chain, IBitcoinWalletConnector, WalletConnectorBase, WalletMetadata } from '@dynamic-labs/wallet-connector-core'; import { WalletBookSchema, WalletSchema } from '@dynamic-labs/wallet-book'; import { JwtVerifiedCredential, WalletAdditionalAddress } from '@dynamic-labs/sdk-api-core'; import { IBitcoinSessionCache } from '../BitcoinLocalStorageCache'; import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse, BitcoinWalletStandardMethods, ConnectedAccountWithAddressesProps, BitcoinSignProtocol, EmbeddedWalletSignPsbtRequest } from '../types'; import { BitcoinWallet } from '../wallet'; export type BitcoinWalletConnectorOpts = { walletBook: WalletBookSchema; walletData: WalletSchema; overrideKey?: string; metadata?: WalletMetadata; }; export declare abstract class BitcoinWalletConnector extends WalletConnectorBase implements IBitcoinWalletConnector { cache: IBitcoinSessionCache; ChainWallet: typeof BitcoinWallet; connectedChain: Chain; supportedChains: Chain[]; private getAddressPromise; private bitcoinProviderHelper; wallet: Wallet | undefined; walletMethods: BitcoinWalletStandardMethods | undefined; canFetchConnectedAccounts: boolean; isHardwareWalletEnabled: boolean; verifiedCredentials: JwtVerifiedCredential[]; private lastAccountChange; constructor(opts: BitcoinWalletConnectorOpts); private isSameAccountChangeRequest; private setLastAccountChangeRequest; clearConnectedAccounts(): Promise; canConnectWithHardwareWallet(): boolean; isInstalledOnBrowser(): boolean; getDeepLink(): string | undefined; endSession(): Promise; private apiGetBalance; getBalance(address: string): Promise; getConnectedAccountsFromCache(): Promise; getConnectedAccounts(): Promise; getAdditionalAddresses(mainAddress?: string): Promise; setAdditionalAddresses(mainAddress: string, additionalAddresses: WalletAdditionalAddress[]): Promise; sendRawTransaction(rawTransaction: string): Promise; sendBitcoin(transaction: BitcoinTransaction): Promise; sendBitcoinWithConfirmation?(transaction: BitcoinTransaction): Promise; buildPsbt(transaction: BitcoinTransaction): Promise; getProvider(): T & EventEmitter; abstract signPsbt(request: BitcoinSignPsbtRequest | EmbeddedWalletSignPsbtRequest, options?: { approvalQuorum?: ApprovalQuorumRequestContext; }): Promise; signPsbts(requests: BitcoinSignPsbtRequest[], options?: { approvalQuorum?: ApprovalQuorumRequestContext; }): Promise; setConnectedAccountWithAddresses({ mainAddress, ordinalsAddress, paymentAddress, active, }: ConnectedAccountWithAddressesProps): Promise; setupEventListeners(): void; setVerifiedCredentials(verifiedCredentials: JwtVerifiedCredential[]): void; isLedgerAddress(address: string): boolean; signMessage(messageToSign: string, options?: { address?: string; approvalQuorum?: ApprovalQuorumRequestContext; protocol?: BitcoinSignProtocol; }): Promise; proveOwnership(address: string, messageToSign: string): Promise; getBlockExplorerUrlsForCurrentNetwork(): Promise; }