import { type Network, type PublicKey, type XOnlyPublicKey } from '@btc-vision/bitcoin';
import type { IP2WSHAddress } from './IP2WSHAddress.js';
export declare class TimeLockGenerator {
    private static readonly UNSPENDABLE_INTERNAL_KEY;
    private static readonly CSV_BLOCKS;
    /**
     * Generate a P2WSH address with CSV timelock
     * Note: This uses ECDSA, not Schnorr (Schnorr only available in Taproot)
     */
    static generateTimeLockAddress(publicKey: PublicKey, network?: Network, csvBlocks?: number): IP2WSHAddress;
    /**
     * Generate a P2TR address with CSV time lock
     * Note: This uses Schnorr signatures
     */
    static generateTimeLockAddressP2TR(publicKey: XOnlyPublicKey, network?: Network, csvBlocks?: number): string;
    /**
     * Generate a P2MR address with CSV time lock
     * Note: This uses Schnorr signatures within a P2MR (BIP 360) script tree
     */
    static generateTimeLockAddressP2MR(publicKey: XOnlyPublicKey, network?: Network, csvBlocks?: number): string;
    private static generateTimeLockScript;
}
//# sourceMappingURL=TimelockGenerator.d.ts.map