/** * Generate schema.org `ProductGroup` (variants) and its `Product` variants * JSON-LD. * * Accepts a parent group name and a list of variant `Product` entries with * optional offers. Images and brand references are normalized into the * appropriate schema.org objects. * * See `VariantsOptions` and `VariantProduct` for accepted fields. * @returns A JSON-LD compatible `ProductGroup` object */ interface BrandRef { name: string; url?: string; } interface OfferItem { price?: string | number; priceCurrency?: string; availability?: string; url?: string; priceValidUntil?: string; itemCondition?: string; } interface VariantProduct { id?: string; name: string; sku?: string; url?: string; image?: string | { url: string; width?: number; height?: number; }; description?: string; brand?: string | BrandRef; offers?: OfferItem | OfferItem[]; } interface VariantsOptions { name: string; productGroupId?: string; variants: VariantProduct[]; skipInvalidCurrency?: boolean; } declare const generateShoppingVariantsSchema: ({ name, productGroupId, variants, skipInvalidCurrency, }: VariantsOptions) => any; export { generateShoppingVariantsSchema };