import type { PrePeginParams, PrePeginResult, PeginTxResult, HtlcConnectorParams, HtlcConnectorInfo } from "./types.js";
export declare function initWasm(): Promise<void>;
/**
 * Creates an unfunded Pre-PegIn transaction with no inputs and one HTLC output.
 *
 * The HTLC output value (htlcValue) covers the peg-in amount, depositor claim value,
 * and minimum pegin fee — all computed internally from the provided contract parameters.
 *
 * After building the Pre-PegIn transaction, the caller must:
 * 1. Select UTXOs covering htlcValue + network fees
 * 2. Fund the transaction (add inputs and change output)
 * 3. Compute the funded transaction's txid
 * 4. Call buildPeginTxFromPrePegin() to derive the PegIn transaction
 * 5. Sign the PegIn input using the HTLC hashlock leaf (leaf 0)
 *
 * @param params - Pre-PegIn parameters from contract and depositor wallet
 * @returns Unfunded transaction details with HTLC output information
 */
export declare function createPrePeginTransaction(params: PrePeginParams): Promise<PrePeginResult>;
/**
 * Derives the PegIn transaction from a funded Pre-PegIn txid.
 *
 * The PegIn transaction has a single input spending Pre-PegIn output 0
 * via the hashlock + all-party script (leaf 0). Since all Pre-PegIn inputs
 * must be SegWit/Taproot, the txid is stable after funding — signing does
 * not change it.
 *
 * @param params - Same PrePeginParams used to create the Pre-PegIn transaction
 * @param timelockPegin - CSV timelock in blocks for the PegIn vault output
 * @param fundedPrePeginTxid - Hex-encoded txid of the funded Pre-PegIn transaction
 * @returns PegIn transaction details including vault output information
 */
export declare function buildPeginTxFromPrePegin(params: PrePeginParams, timelockPegin: number, fundedPrePeginTxid: string): Promise<PeginTxResult>;
/**
 * Returns HTLC connector script info for signing the PegIn transaction input.
 *
 * The depositor signs PegIn input 0 using the hashlock leaf (leaf 0) of the
 * Pre-PegIn HTLC output. Use getHashlockScript() and getHashlockControlBlock()
 * to construct the tapLeafScript entry in the PSBT.
 *
 * @param params - HTLC connector parameters (subset of PrePeginParams)
 * @returns Hashlock and refund script info for PSBT construction
 */
export declare function getPrePeginHtlcConnectorInfo(params: HtlcConnectorParams): Promise<HtlcConnectorInfo>;
/**
 * Compute the minimum depositor claim value (PegIn output 1) in satoshis.
 *
 * This covers the full downstream tx graph cost (Claim → Assert → Payout)
 * based on the protocol parameters.
 */
export declare function computeMinClaimValue(numLocalChallengers: number, numUniversalChallengers: number, councilQuorum: number, councilSize: number, feeRate: bigint): Promise<bigint>;
/**
 * Returns the protocol constant for the number of UTXOs (Assert outputs)
 * per challenger. Currently 3, derived from Bitcoin's 1000 stack element limit.
 */
export declare function numUtxosForInputLabels(): Promise<number>;
export type { Network, PrePeginParams, PrePeginResult, PeginTxResult, HtlcConnectorParams, HtlcConnectorInfo, PayoutConnectorParams, PayoutConnectorInfo, AssertPayoutNoPayoutConnectorParams, AssertPayoutScriptInfo, AssertNoPayoutScriptInfo, ChallengeAssertConnectorParams, ChallengeAssertScriptInfo, } from "./types.js";
export { TAP_INTERNAL_KEY, tapInternalPubkey } from "./constants.js";
export { createPayoutConnector, getPeginPayoutScript } from "./payoutConnector.js";
export { getAssertPayoutScriptInfo, getAssertNoPayoutScriptInfo, } from "./assertPayoutNoPayoutConnector.js";
export { getChallengeAssertScriptInfo } from "./challengeAssertConnector.js";
export { WasmPeginTx, WasmPeginPayoutConnector, WasmPrePeginTx, WasmPrePeginHtlcConnector } from "./generated/btc_vault.js";
//# sourceMappingURL=index.d.ts.map