import { BigNumber, BigNumberish } from 'ethers'; import { RoutePlanner } from '../utils/routerCommands'; import { Command, RouterTradeType, TradeConfig } from './Command'; import { CryptopunkData } from './protocols/cryptopunk'; import { ElementData } from './protocols/element-market'; import { FoundationData } from './protocols/foundation'; import { LooksRareV2Data } from './protocols/looksRareV2'; import { NFT20Data } from './protocols/nft20'; import { NFTXData } from './protocols/nftx'; import { SeaportData } from './protocols/seaport'; import { SudoswapData } from './protocols/sudoswap'; import { X2Y2Data } from './protocols/x2y2'; export declare type SupportedProtocolsData = SeaportData | FoundationData | NFTXData | LooksRareV2Data | X2Y2Data | CryptopunkData | NFT20Data | SudoswapData | ElementData; export declare abstract class NFTTrade implements Command { readonly tradeType: RouterTradeType; readonly orders: T[]; readonly market: Market; constructor(market: Market, orders: T[]); abstract encode(planner: RoutePlanner, config: TradeConfig): void; abstract getBuyItems(): BuyItem[]; abstract getTotalPrice(token?: string): BigNumber; } export declare type BuyItem = { tokenAddress: string; tokenId: BigNumberish; tokenType: TokenType; amount?: BigNumberish; }; export declare enum Market { Foundation = "foundation", LooksRareV2 = "looksrareV2", NFT20 = "nft20", NFTX = "nftx", Seaport = "seaport", Sudoswap = "Sudoswap", Cryptopunks = "cryptopunks", X2Y2 = "x2y2", Element = "element" } export declare enum TokenType { ERC721 = "ERC721", ERC1155 = "ERC1155", Cryptopunk = "Cryptopunk" }