import type { ApprovalQuorumRequestContext } from '@dynamic-labs-wallet/core'; import { Wallet } from '@dynamic-labs/wallet-connector-core'; import { type WalletAddressType } from '@dynamic-labs/types'; import { BitcoinWalletConnector } from '../connectors'; import { BitcoinSignProtocol, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse, BitcoinTransaction, EmbeddedWalletSignPsbtRequest } from '../types'; export declare class BitcoinWallet extends Wallet { /** * Sends the native balance of the wallet to the given address. * @param amount - The amount of balance to send (in satoshis). * @param toAddress - The address to send the balance to. * @returns The signature of the sent transaction. */ sendBalance({ amount, toAddress, }: { amount: string; toAddress: string; }): Promise; /** * Sends a raw transaction * @returns A promise that resolves to the transaction id */ sendRawTransaction(rawTransaction: string): Promise; /** * Sends satoshis to a bitcoin address * @returns A promise that resolves to the transaction id */ sendBitcoin(transaction: BitcoinTransaction): Promise; /** * Sends satoshis to a bitcoin address, showing a confirmation modal when * the connector supports it (e.g. DynamicWaasBitcoinConnector). Falls back * to sendBitcoin for connectors that have no confirmation UI. * @returns A promise that resolves to the transaction id */ sendBitcoinWithConfirmation(transaction: BitcoinTransaction): Promise; /** * Signs a message using a specific address type (payment or ordinals). * @param messageToSign - The message to sign. * @param options - Optional configuration for signing * @param options.addressType - The type of address to sign with (e.g. 'payment' or 'ordinals') * @param options.protocol - The signing protocol to use (e.g. 'ecdsa' or 'bip322-simple') * @returns A promise that resolves to the signature of the message as a string, * or undefined if the message cannot be signed. */ signMessage(messageToSign: string, options?: { addressType?: WalletAddressType; approvalQuorum?: ApprovalQuorumRequestContext; protocol?: BitcoinSignProtocol; }): Promise; /** * Sings a PSBT * @returns A promise that resolves to an object with the signed PSBT * or undefined if no provider is available */ signPsbt(request: BitcoinSignPsbtRequest | EmbeddedWalletSignPsbtRequest, options?: { approvalQuorum?: ApprovalQuorumRequestContext; }): Promise; /** * Sings multiple PSBTs * @returns A promise that resolves to an array of signed PSBTs in base64 * or undefined if no provider is available */ signPsbts(requests: BitcoinSignPsbtRequest[], options?: { approvalQuorum?: ApprovalQuorumRequestContext; }): Promise; /** * Builds a PSBT for a Bitcoin transaction * @param transaction - The Bitcoin transaction containing recipient address and amount in satoshis * @returns A promise that resolves to a PSBT in Base64 format, or undefined if not supported */ buildPsbt(transaction: BitcoinTransaction): Promise; /** * Screens the transaction's destinations before the wallet is prompted to * sign. Rejects only on an explicit block (best-effort, fail-open). */ private screenBeforeSigning; }