import { Address, Hex } from 'viem'; import { MarketAcc, MarketId, OrderId, Side, TimeInForce, TokenId } from './common'; export interface GetUserInfoReq { marketAcc: MarketAcc; } export interface ApproveAgentReq { root: Address; accountId: number; agent: Address; expiry: bigint; } export interface RevokeAgentReq { root: Address; accountId: number; agents: Address[]; } export interface AccCashReq { marketAcc: MarketAcc; } export interface VaultTransferReq { tokenId: TokenId; amount: bigint; isDeposit: boolean; } export interface TryAggregateReq { calls: Hex[]; requireSuccess: boolean; } export interface SubaccountTransferReq { accountId: number; tokenId: TokenId; marketId: MarketId; amount: bigint; isDeposit: boolean; } export interface CashTransferReq { marketId: MarketId; signedAmount: bigint; } export interface OrderReq { cross: boolean; marketId: MarketId; ammId: number; side: Side; tif: TimeInForce; size: bigint; tick: number; } export interface CancelData { ids: OrderId[]; isAll: boolean; isStrict: boolean; } export interface LongShort { tif: TimeInForce; side: Side; sizes: bigint[]; limitTicks: number[]; } export interface BulkOrder { marketId: MarketId; orders: LongShort; cancelData: CancelData; } export interface BulkOrdersReq { cross: boolean; bulks: BulkOrder[]; desiredMatchRates: bigint[]; } export interface BulkCancelsReq { cross: boolean; marketId: MarketId; cancelAll: boolean; orderIds: OrderId[]; } export interface LiquidateReq { cross: boolean; marketId: MarketId; violator: MarketAcc; sizeToLiquidator: bigint; } export interface SettlePaymentAndOrdersReq { user: MarketAcc; } export interface SwapWithAmmReq { cross: boolean; ammId: number; signedSize: bigint; desiredSwapRate: bigint; } export interface AddLiquidityDualToAmmReq { cross: boolean; ammId: number; maxCashIn: bigint; exactSizeIn: bigint; minLpOut: bigint; } export interface AddLiquiditySingleCashToAmmReq { cross: boolean; ammId: number; netCashIn: bigint; minLpOut: bigint; enterMarket: boolean; desiredSwapSide: Side; desiredSwapRate: bigint; } export interface RemoveLiquidityDualFromAmmReq { cross: boolean; ammId: number; lpToRemove: bigint; minCashOut: bigint; minSizeOut: bigint; maxSizeOut: bigint; } export interface RemoveLiquiditySingleCashFromAmmReq { cross: boolean; ammId: number; lpToRemove: bigint; minCashOut: bigint; desiredSwapSide: Side; desiredSwapRate: bigint; } export interface PlaceSingleOrderReq { order: OrderReq; enterMarket: boolean; idToStrictCancel: OrderId; exitMarket: boolean; isolated_cashIn: bigint; isolated_cashTransferAll: boolean; desiredMatchRate: bigint; } export interface EnterExitMarketsReq { cross: boolean; isEnter: boolean; marketIds: MarketId[]; } export interface VaultDepositReq { accountId: number; tokenId: TokenId; marketId: MarketId; amount: bigint; } export interface RequestVaultWithdrawalReq { tokenId: TokenId; amount: bigint; } export interface CancelVaultWithdrawalReq { tokenId: TokenId; } export interface FinalizeVaultWithdrawalReq { user: Address; tokenId: TokenId; } export interface PayTreasuryReq { cross: boolean; marketId: MarketId; amount: bigint; } export interface VaultPayTreasuryReq { tokenId: TokenId; amount: bigint; } export interface AmmCashTransferReq { marketId: number; cashIn: bigint; cashTransferAll: boolean; } export declare const functionEncoder: { vaultPayTreasury(params: VaultPayTreasuryReq): `0x${string}`; vaultDeposit(params: VaultDepositReq): `0x${string}`; requestVaultWithdrawal(params: RequestVaultWithdrawalReq): `0x${string}`; cancelVaultWithdrawal(params: CancelVaultWithdrawalReq): `0x${string}`; payTreasury(params: PayTreasuryReq): `0x${string}`; tryAggregate(params: TryAggregateReq): `0x${string}`; subaccountTransfer(params: SubaccountTransferReq): `0x${string}`; ammCashTransfer(req: AmmCashTransferReq): `0x${string}`; cashTransfer(req: CashTransferReq): `0x${string}`; placeSingleOrder(req: PlaceSingleOrderReq): `0x${string}`; bulkOrders(req: BulkOrdersReq): `0x${string}`; bulkCancels(req: BulkCancelsReq): `0x${string}`; enterExitMarkets(req: EnterExitMarketsReq): `0x${string}`; swapWithAmm(params: SwapWithAmmReq): `0x${string}`; addLiquidityDualToAmm(params: AddLiquidityDualToAmmReq): `0x${string}`; addLiquiditySingleCashToAmm(params: AddLiquiditySingleCashToAmmReq): `0x${string}`; removeLiquidityDualFromAmm(params: RemoveLiquidityDualFromAmmReq): `0x${string}`; removeLiquiditySingleCashFromAmm(params: RemoveLiquiditySingleCashFromAmmReq): `0x${string}`; getUserInfo(params: GetUserInfoReq): Hex; accCash(params: AccCashReq): `0x${string}`; approveAgent(params: ApproveAgentReq): `0x${string}`; revokeAgent(params: RevokeAgentReq): `0x${string}`; };