/** * Generate schema.org `ItemList` JSON-LD for a shopping overview (Products). * * The function emits an `ItemList` where each `ListItem.item` is a * `Product` object with optional `offers` and `aggregateRating`. Use * `skipInvalidCurrency` to ignore invalid currency codes in offers. * * See `ShoppingOverviewOptions` and `ProductItem` for accepted fields. * @returns A JSON-LD compatible `ItemList` of Product objects */ interface BrandRef { name: string; url?: string; } interface ProductOffer { price?: string | number; priceCurrency?: string; availability?: string; url?: string; } interface ProductItem { id?: string; name: string; url?: string; image?: string | { url: string; width?: number; height?: number; }; description?: string; brand?: string | BrandRef; sku?: string; aggregateRating?: { ratingValue: number | string; reviewCount?: number; }; offers?: ProductOffer | ProductOffer[]; priceRange?: { low?: string | number; high?: string | number; }; category?: string | string[]; } interface ShoppingOverviewOptions { name?: string; url?: string; products: ProductItem[]; skipInvalidCurrency?: boolean; } declare const generateShoppingOverviewSchema: ({ name, url, products, skipInvalidCurrency, }: ShoppingOverviewOptions) => any; export { generateShoppingOverviewSchema };