import type { Address } from "@rarible/types" import type { BigNumberValue } from "@rarible/utils" import type { Erc721AssetRequest, TransferRequest, TransferResponse } from "./nft/domain" import type { BuyRequest, BuyResponse, CancelOrderRequest, CancelOrderResponse, SellRequest, SellResponse, } from "./order/domain" import type { BalanceRequestAssetType } from "./balance/balance" export type ImxFee = { recipient: string, percentage: number } export type ImxBlockchainTx = void export type ImxOrderSdk = { buy(request: BuyRequest, token: Erc721AssetRequest): Promise sell(request: SellRequest): Promise cancel(request: CancelOrderRequest): Promise } export type ImxNftSdk = { transfer(request: TransferRequest): Promise burn(request: Erc721AssetRequest): Promise } export type RaribleImxSdk = { order: ImxOrderSdk nft: ImxNftSdk balance: ImxBalancesSdk } export type ImxBalancesSdk = { getBalance(address: Address, assetType: BalanceRequestAssetType): Promise }