/** * Generate a merchant product listing as schema.org structured data. * * Returns an `ItemList` where each `ListItem.item` is a `Product` with * optional `Offer` entries. Supports brand, seller, images, and basic * offer normalization; pass `skipInvalidCurrency` to ignore currency * validation for price fields. * * See `MerchantListingOptions` and `MerchantProduct` types for accepted * fields. * @returns A JSON-LD compatible `ItemList` of Products */ interface BrandRef { name: string; url?: string; } interface MerchantRef { name: string; url?: string; } interface OfferItem { price?: string | number; priceCurrency?: string; availability?: string; url?: string; priceValidUntil?: string; itemCondition?: string; seller?: MerchantRef; } interface MerchantProduct { id?: string; name: string; url?: string; image?: string | { url: string; width?: number; height?: number; }; description?: string; brand?: string | BrandRef; sku?: string; offers?: OfferItem | OfferItem[]; } interface MerchantListingOptions { merchant?: MerchantRef; name?: string; url?: string; products: MerchantProduct[]; skipInvalidCurrency?: boolean; } declare const generateShoppingMerchantListingSchema: ({ merchant, name, url, products, skipInvalidCurrency, }: MerchantListingOptions) => any; export { generateShoppingMerchantListingSchema };