import { Market } from "3rdweb-contracts"; import { TransactionReceipt } from "@ethersproject/providers"; import { BigNumber, BigNumberish } from "ethers"; import { ModuleType, Role } from "../common"; import { CurrencyValue } from "../common/currency"; import { NFTMetadata } from "../common/nft"; import { ModuleWithRoles } from "../core/module"; import { MetadataURIOrObject } from "../core/types"; /** * Filter options for the Market module. * @public */ export interface ListingFilter { seller?: string; tokenContract?: string; tokenId?: string; } /** * Metadata for items listed on a Market module. * @public */ export interface ListingMetadata { id: string; seller: string; tokenContract: string; tokenId: string; tokenMetadata?: NFTMetadata; quantity: BigNumber; tokensPerBuyer: BigNumber; currencyContract: string; currencyMetadata: CurrencyValue | null; price: BigNumber; saleStart: Date | null; saleEnd: Date | null; } /** * Access this module by calling {@link ThirdwebSDK.getMarketModule} * @public * * @deprecated */ export declare class MarketModule extends ModuleWithRoles { static moduleType: ModuleType; static roles: readonly ["admin", "lister", "pauser"]; /** * @override * @internal */ protected getModuleRoles(): readonly Role[]; /** * @internal */ protected connectContract(): Market; /** * @internal */ protected getModuleType(): ModuleType; private transformResultToListing; /** * @deprecated Use {@link MarketModule.get} instead. */ getListing(listingId: string): Promise; /** * @deprecated Use {@link MarketModule.getAll} instead. */ getAllListings(filter?: ListingFilter): Promise; get(listingId: string): Promise; getAll(filter?: ListingFilter): Promise; getMarketFeeBps(): Promise; list(assetContract: string, tokenId: string, currencyContract: string, price: BigNumberish, quantity: BigNumberish, tokensPerBuyer?: BigNumberish, secondsUntilStart?: BigNumberish, secondsUntilEnd?: BigNumberish): Promise; unlistAll(listingId: string): Promise; unlist(listingId: string, quantity: BigNumberish): Promise; setRestrictedListerRoleOnly(restricted: boolean): Promise; buy(listingId: string, quantity: BigNumberish): Promise; setModuleMetadata(metadata: MetadataURIOrObject): Promise; setMarketFeeBps(fee: number): Promise; }