import { AssetWithTokenId, FulfillmentDataResponse, GetNFTResponse, OrderAPIOptions, OrderV2, OrdersQueryOptions, ProtocolData } from "opensea-js"; import { BigNumberish } from "@ethersproject/bignumber"; import { Interface } from "@ethersproject/abi"; import { Listing, Marketplace, MarketplaceType, Order, OrderFilterOptions, OrderSide, SignedOrder, Wrapper } from "./types"; import { CreateOrderAction, CreateOrderInput, OrderParameters, OrderUseCase } from "@opensea/seaport-js/lib/types"; import { ContractAddresses, PriceDiscoveryStruct, Side, Web3LibAdapter } from "@bosonprotocol/common"; import { AdvancedOrder } from "../seaport/interface"; export type OpenSeaListing = { asset: AssetWithTokenId; accountAddress: string; startAmount: BigNumberish; endAmount?: BigNumberish; quantity?: BigNumberish; domain?: string; salt?: BigNumberish; listingTime?: number; expirationTime?: number; paymentTokenAddress?: string; buyerAddress?: string; englishAuction?: boolean; excludeOptionalCreatorFees?: boolean; }; export type OpenSeaSDKHandler = { api: { apiBaseUrl: string; getOrder(order: Omit): Promise; getOrders(order: Omit): Promise<{ orders: OrderV2[]; }>; generateFulfillmentData(fulfillerAddress: string, orderHash: string, protocolAddress: string, side: OrderSide): Promise; getNFT(address: string, identifier: string): Promise; postOrder(order: ProtocolData, apiOptions: OrderAPIOptions): Promise; }; seaport_v1_6: { createOrder(input: CreateOrderInput, accountAddress?: string, exactApproval?: boolean): Promise>; }; createListing(listing: OpenSeaListing): Promise; cancelOrder(args: { order: OrderV2; accountAddress: string; domain?: string; }): Promise; }; export declare class WrapperFactory { protected _contract: string; protected _web3Lib: Web3LibAdapter; protected iface: Interface; constructor(_contract: string, _web3Lib: Web3LibAdapter); create(args: { voucherContract: string; }): Promise; getWrapper(args: { voucherContract: string; }): Promise; } export declare class OpenSeaWrapper extends Wrapper { protected _contract: string; protected _web3Lib: Web3LibAdapter; protected iface: Interface; constructor(_contract: string, _web3Lib: Web3LibAdapter); wrapForAuction(args: { tokenIds: BigNumberish[]; }): Promise; unwrap(args: { tokenId: BigNumberish; }): Promise; encodeFinalizeAuction(args: { tokenId: BigNumberish; order: AdvancedOrder; }): string; finalizeAuction(args: { tokenId: BigNumberish; order: AdvancedOrder; }): Promise; get address(): string; } export declare class OpenSeaMarketplace extends Marketplace { protected _handler: OpenSeaSDKHandler; protected _contracts: ContractAddresses; protected _feeRecipient: string; protected _web3Lib: Web3LibAdapter; protected _wrapperFactory: WrapperFactory; protected _wrappersMap: Map; protected _feeBasisPoint: number; constructor(_type: MarketplaceType, _handler: OpenSeaSDKHandler, _contracts: ContractAddresses, _feeRecipient: string, _web3Lib: Web3LibAdapter, feeBasisPoint?: number); createListing(listing: Listing): Promise; getFees(price: string): string; createBidOrder(listing: Listing): Promise; buildAdvancedOrder(asset: { contract: string; tokenId: string; withWrapper?: boolean; }, filter?: OrderFilterOptions): Promise; generateFulfilmentData(asset: { contract: string; tokenId: string; withWrapper?: boolean; }): Promise; /** getOrCreateVouchersWrapper needs to be done at voucher contract level, * before being able to wrap vouchers, then list them on OS **/ getOrCreateVouchersWrapper(contractAddress: string): Promise; isVoucherWrapped(contractAddress: string, tokenId: string): Promise<{ wrapped: boolean; wrapper?: string; }>; wrapVouchers(contract: string, tokenIds: string[]): Promise; unwrapVoucher(contract: string, tokenId: string): Promise; finalizeAuction(asset: { contract: string; tokenId: string; }): Promise; cancelOrder(asset: { contract: string; tokenId: string; }, side: Side): Promise; protected convertListing(listing: Listing): OpenSeaListing; protected convertOsOrder(osOrder: OrderV2 | undefined): Order | undefined; protected extractOrderInfo(parameters: OrderParameters, side?: OrderSide): { offerer: string; side: OrderSide; nftContract: string; tokenId: string; price: string; fees: string; sellerProfit: string; exchangeToken: string; }; getOrder(asset: { contract: string; tokenId: string; }, side: Side, filter?: OrderFilterOptions): Promise; getOrders(asset: { contract: string; tokenIds: string[]; }, side: Side, filter?: OrderFilterOptions): Promise; } //# sourceMappingURL=opensea.d.ts.map