import { d as XService, c as XConnector, X as XAccount } from '../../XConnector-12q0OVe5.js'; import { XToken, IBitcoinWalletProvider, BtcWalletAddressType } from '@sodax/types'; export { BtcWalletAddressType } from '@sodax/types'; import { BitcoinWalletDefaults } from '@sodax/wallet-sdk-core'; import { AddressPurpose } from 'sats-connect'; declare class BitcoinXService extends XService { private static instance; private rpcUrl; private constructor(); static getInstance(rpcUrl?: string): BitcoinXService; getBalance(address: string | undefined, xToken: XToken): Promise; } /** * Abstract base class for Bitcoin wallet connectors. * Subclasses implement wallet-specific connection logic (Unisat, Xverse, OKX). * * `defaults` carries per-call overrides forwarded to the wallet provider built * by each subclass. Currently honored field: `defaultFinalize` — applied to * `signTransaction` when the caller omits the `finalize` argument. */ declare abstract class BitcoinXConnector extends XConnector { protected readonly defaults: BitcoinWalletDefaults | undefined; constructor(name: string, id: string, defaults?: BitcoinWalletDefaults); getXService(): BitcoinXService; abstract connect(): Promise; abstract disconnect(): Promise; /** * Returns an IBitcoinWalletProvider instance after connecting. * Used by useSpokeProvider to build BitcoinSpokeProvider. */ abstract getWalletProvider(): IBitcoinWalletProvider | undefined; /** * Recreates a walletProvider from the browser extension window object * and stored xAccount data (no connect() call, no popup). * Used to restore provider after page reload without requiring reconnect. */ abstract recreateWalletProvider(xAccount: XAccount): IBitcoinWalletProvider | undefined; } interface UnisatWallet { getAccounts(): Promise; getPublicKey(): Promise; signPsbt(psbtHex: string, options?: { autoFinalized?: boolean; }): Promise; signMessage(message: string, type?: 'bip322-simple' | 'ecdsa'): Promise; requestAccounts(): Promise; sendBitcoin(address: string, satoshis: number): Promise; } declare global { interface Window { unisat?: UnisatWallet; } } declare class UnisatXConnector extends BitcoinXConnector { private walletProvider; constructor(defaults?: BitcoinWalletDefaults); static isAvailable(): boolean; get isInstalled(): boolean; get installUrl(): string; get icon(): string; connect(): Promise; disconnect(): Promise; getWalletProvider(): IBitcoinWalletProvider | undefined; recreateWalletProvider(xAccount: XAccount): IBitcoinWalletProvider | undefined; } declare class XverseXConnector extends BitcoinXConnector { private walletProvider; /** Address purpose used when connecting. Taproot (Ordinals) by default to match Bound Exchange. */ addressPurpose: AddressPurpose; constructor(defaults?: BitcoinWalletDefaults); /** Set address purpose and persist to localStorage. */ setAddressPurpose(type: BtcWalletAddressType): void; static isAvailable(): boolean; get isInstalled(): boolean; get installUrl(): string; get icon(): string; connect(): Promise; disconnect(): Promise; getWalletProvider(): IBitcoinWalletProvider | undefined; recreateWalletProvider(xAccount: XAccount): IBitcoinWalletProvider | undefined; } interface OKXBitcoinWallet { getAccounts(): Promise; getPublicKey(): Promise; signPsbt(psbtHex: string, options?: { autoFinalized?: boolean; }): Promise; signMessage(message: string, type?: 'bip322-simple' | 'ecdsa'): Promise; connect(): Promise<{ address: string; publicKey: string; }>; sendBitcoin(toAddress: string, satoshis: number): Promise; } declare global { interface Window { okxwallet?: { bitcoin?: OKXBitcoinWallet; }; } } declare class OKXXConnector extends BitcoinXConnector { private walletProvider; constructor(defaults?: BitcoinWalletDefaults); static isAvailable(): boolean; get isInstalled(): boolean; get installUrl(): string; get icon(): string; connect(): Promise; disconnect(): Promise; getWalletProvider(): IBitcoinWalletProvider | undefined; recreateWalletProvider(xAccount: XAccount): IBitcoinWalletProvider | undefined; } declare class BitcoinHanaXConnector extends BitcoinXConnector { private walletProvider; /** Address purpose used when connecting. Taproot (Ordinals) by default to match Bound Exchange. */ addressPurpose: AddressPurpose; constructor(defaults?: BitcoinWalletDefaults); /** Set address purpose and persist to localStorage. */ setAddressPurpose(type: BtcWalletAddressType): void; static isAvailable(): boolean; get isInstalled(): boolean; get installUrl(): string; get icon(): string; connect(): Promise; disconnect(): Promise; getWalletProvider(): IBitcoinWalletProvider | undefined; recreateWalletProvider(xAccount: XAccount): IBitcoinWalletProvider | undefined; } /** * Hook to return available Bitcoin wallet connectors from the globally registered xService. */ declare function useBitcoinXConnectors(): BitcoinXConnector[]; export { BitcoinHanaXConnector, BitcoinXConnector, BitcoinXService, OKXXConnector, UnisatXConnector, XverseXConnector, useBitcoinXConnectors };