import { PublicClient, WalletClient } from 'viem'; import { ProtocolConfig, Token } from '../types'; export declare class SatoshiNexusYieldModule { readonly walletClient: WalletClient; readonly protocolConfig: ProtocolConfig; readonly publicClient: PublicClient; constructor({ protocolConfig, publicClient, walletClient, }: { protocolConfig: ProtocolConfig; publicClient: PublicClient; walletClient: WalletClient; }); /** * @description Get supported assets list * @returns */ getAssetList(): Token[]; /** * @description Get pending withdraw infos * @param assets swap out assets address * @returns */ getNymPendingWithdrawInfos(assets: Token[]): Promise<{ asset: `0x${string}`; withdrawalTime: bigint; scheduledWithdrawalAmount: bigint; }[] | undefined>; /** * @description Preview swap in received amount and fee * @param asset asset address * @param amount amount * @returns */ getPreviewSwapIn(asset: `0x${string}`, amount: bigint): Promise<{ debtTokenToMintAmt: bigint; feeAmt: bigint; } | undefined>; /** * @description Preview swap out received amount and fee * @param asset asset address * @param amount debt token amount * @returns */ getPreviewSwapOut(asset: `0x${string}`, amount: bigint): Promise<{ assetAmount: bigint; feeAmt: bigint; } | undefined>; /** * @description Swap in asset and receive debt token * @param asset asset address * @param amount swap in amount * @returns */ doNymSwapIn(asset: `0x${string}`, assetAmount: bigint): Promise; /** * @description Scheduled swap out asset, the asset will be able to withdraw after the scheduled time * @param asset received asset address * @param amount swap out debt token amount * @returns */ doNymSwapOut(asset: `0x${string}`, satAmount: bigint): Promise; /** * @description Withdraw swap out asset * @param asset swap out asset address * @returns */ doNymWithdraw(asset: `0x${string}`): Promise; /** * @description Get asset info and validate * @param asset asset address * @returns */ private getAssetInfo; }