import { Buff, Bytes } from '@cmdcode/buff';
import { MusigContext } from '@cmdcode/musig2';
import { SigHashOptions, TapContext, TxBytes, TxData, TxInput, TxOutput, TxPrevout } from '@scrow/tapscript';
import { SpendTemplate, SignerAPI, OracleTxIn, TxOutput as SpendOut, DepositData, Network } from '../types/index.js';
export declare function create_timelock(duration: number): number;
export declare function get_address(tapkey: Bytes, network?: Network): string;
export declare function get_tapkey(pubkey: string, script: string[]): TapContext;
export declare function get_parent_txid(txdata: TxBytes | TxData, index?: number): string;
export declare function create_txspend(txin: OracleTxIn): SpendOut;
export declare function prevout_to_txspend(txinput: TxPrevout): SpendOut;
export declare function parse_txout(deposit: DepositData): SpendOut;
export declare function create_txinput(txout: SpendOut): TxPrevout;
export declare function parse_txinput(deposit: DepositData): TxPrevout;
export declare function parse_timelock(sequence: number): number;
export declare function parse_prevout(txdata: TxBytes | TxData, tapkey: Bytes): TxPrevout | null;
export declare function get_signed_tx(ctx: MusigContext, psigs: string[], txdata: TxData): Buff;
export declare function create_tx_tmpl(address: string, value: number): string;
export declare function create_txhex(vout: TxOutput[]): string;
export declare function create_sighash(txinput: TxInput, txbytes: TxBytes): string;
export declare function get_sighash(path_name: string, outputs: SpendTemplate[], txinput: TxPrevout): string;
export declare function get_sighashes(outputs: SpendTemplate[], txinput: TxPrevout): string[][];
export declare function sign_tx(signer: SignerAPI, txdata: TxBytes | TxData, config?: SigHashOptions): string;
