export declare enum RenVMType { Address = "address", Str = "str", B32 = "b32", B = "b", I8 = "i8", I16 = "i16", I32 = "i32", I64 = "i64", I128 = "i128", I256 = "i256", U8 = "u8", U16 = "u16", U32 = "u32", U64 = "u64", U128 = "u128", U256 = "u256", Record = "record", List = "list", ExtTypeEthCompatAddress = "ext_ethCompatAddress", ExtTypeBtcCompatUTXO = "ext_btcCompatUTXO", ExtTypeBtcCompatUTXOs = "ext_btcCompatUTXOs", ExtTypeEthCompatTx = "ext_ethCompatTx", ExtEthCompatPayload = "ext_ethCompatPayload" } export interface RenVMOutputUTXO { txHash: RenVMValue; vOut: RenVMValue; scriptPubKey: RenVMValue; amount: RenVMValue; } export interface RenVMInputUTXO { txHash: RenVMValue; vOut: RenVMValue; scriptPubKey?: RenVMValue; amount?: RenVMValue; } export declare type RenVMUTXO = RenVMOutputUTXO | RenVMInputUTXO; export declare type Base64String = string; export declare type HexString = string; export declare type DecimalString = string; export interface ExtEthCompatPayload { abi: RenVMValue; value: RenVMValue; fn: RenVMValue; } export declare type RenVMValue = Type extends RenVMType.Address ? string : Type extends RenVMType.Str ? Base64String : Type extends RenVMType.B32 ? Base64String : Type extends RenVMType.B ? Base64String : Type extends RenVMType.I8 ? DecimalString : Type extends RenVMType.I16 ? DecimalString : Type extends RenVMType.I32 ? DecimalString : Type extends RenVMType.I64 ? DecimalString : Type extends RenVMType.I128 ? DecimalString : Type extends RenVMType.I256 ? DecimalString : Type extends RenVMType.U8 ? DecimalString : Type extends RenVMType.U16 ? DecimalString : Type extends RenVMType.U32 ? DecimalString : Type extends RenVMType.U64 ? DecimalString : Type extends RenVMType.U128 ? DecimalString : Type extends RenVMType.U256 ? DecimalString : Type extends RenVMType.Record ? any : Type extends RenVMType.List ? any[] : Type extends RenVMType.ExtTypeEthCompatAddress ? HexString : Type extends RenVMType.ExtTypeBtcCompatUTXO ? RenVMUTXO : Type extends RenVMType.ExtTypeBtcCompatUTXOs ? RenVMUTXO[] : Type extends RenVMType.ExtTypeEthCompatTx ? any : Type extends RenVMType.ExtEthCompatPayload ? ExtEthCompatPayload : any; export interface MintAndBurnFees { mint: RenVMValue; burn: RenVMValue; } interface MintFees { [chain: string]: MintAndBurnFees; } interface LockFees { lock: RenVMValue; release: RenVMValue; } export declare type Fees = LockFees & MintFees; export {};