import type { SuiClient } from '@mysten/sui/client'; import type { Transaction } from '@mysten/sui/transactions'; import type { Balance, CoinInRecord, WalletAddress } from '../types'; export type ProvideLiquidityArgs = { walletAddress: WalletAddress; amountsIn: CoinInRecord; slippage: number; }; export type RemoveLiquidityArgs = { walletAddress: WalletAddress; amountIn: Balance; }; export interface AMM { client: SuiClient; provideLiquidity: (args: ProvideLiquidityArgs) => Promise; quoteProvideLiquidity: (args: ProvideLiquidityArgs) => Promise; removeLiquidity: (args: RemoveLiquidityArgs) => Promise; quoteRemoveLiquidity: (args: RemoveLiquidityArgs) => Promise; }