/**
 * Helpers for building the EIP-191 `execute-btc-withdrawal` envelope that the
 * `btc-transaction-signer` LIT Action verifies.
 *
 * Pulled out of the CLI's executePendingWithdrawal util so the SDK and CLI
 * use the same logic and signing rules.
 */
import { type Signer } from "ethers";
export interface BtcExecuteSignParams {
    positionId: string;
    txid: string;
    vout: number;
    networkFee: number;
    chainId: number;
    signer: Signer;
}
export interface BtcExecuteSignedEnvelope {
    positionId: string;
    txid: string;
    vout: number;
    satoshis: number;
    /** Bitcoin destination address bound into the signature. */
    targetAddress: string;
    /** Authorized withdrawal amount (sats) bound into the signature. */
    targetAmount: number;
    networkFee: number;
    chainId: number;
    /** Quantum-aligned timestamp (start of a 60s quantum). */
    timestamp: number;
    /** EIP-191 signature over the message hash. */
    userSignature: string;
    /** Address recovered from the signer (borrower). */
    borrowerAddress: string;
}
/**
 * Build the quantum-aligned timestamp + EIP-191 signature the
 * `/api/lit/pending-withdrawals/execute` endpoint expects.
 *
 * Audit CRIT-1: the signed message now binds `targetAddress` and `targetAmount`
 * in addition to the UTXO identifier. The previous shape bound only the UTXO,
 * delegating destination/amount enforcement to the Lit Action's on-chain
 * `getAuthorizedSpends` lookup. That single defense was reliable in practice
 * but the user-signed message is now self-describing — the Lit Action
 * cross-checks the user-signed values against the on-chain authorizer record
 * and refuses any disagreement, so a bug or future loosening of one side does
 * not silently redirect funds.
 *
 * Caller passes the UTXO satoshis (from Phase 1 result) AND the user-authorized
 * destination + amount; this helper returns everything the server needs to
 * delegate to the BTC signer LIT Action.
 *
 * Wire-compat: this is a coordinated breaking change — the new SDK signatures
 * are not accepted by an older btc-transaction-signer Lit Action, and the new
 * Lit Action does not accept older SDK signatures. Deploy together.
 */
export declare function buildBtcExecuteEnvelope(params: BtcExecuteSignParams & {
    satoshis: number;
    targetAddress: string;
    targetAmount: number;
}): Promise<BtcExecuteSignedEnvelope>;
