/** * Generate schema.org `ItemList` JSON-LD for a movie carousel (list of * `Movie` entries). * * Each movie item can include director/actor references, offers, * aggregate ratings and genre metadata. Images are normalized to * `ImageObject` entries. * * See `MovieCarouselOptions` and `MovieItem` for input details. * @returns A JSON-LD compatible `ItemList` of `Movie` objects */ interface PersonRef { name: string; url?: string; } interface MovieOffer { price?: string | number; priceCurrency?: string; availability?: string; url?: string; } interface MovieItem { id?: string; name: string; url?: string; image?: string | { url: string; width?: number; height?: number; }; description?: string; director?: string | PersonRef | Array; actor?: string | PersonRef | Array; datePublished?: string; duration?: string; genre?: string | string[]; aggregateRating?: { ratingValue: number | string; reviewCount?: number; }; offers?: MovieOffer | MovieOffer[]; } interface MovieCarouselOptions { name?: string; url?: string; items: MovieItem[]; skipInvalidCurrency?: boolean; } declare const generateMovieCarouselSchema: ({ name, url, items, skipInvalidCurrency, }: MovieCarouselOptions) => any; export { generateMovieCarouselSchema };