/** * Generate schema.org `VacationRental` JSON-LD including optional reviews * and `AggregateRating`. * * The function accepts address or geo information, images, host references, * and occupancy data. Reviews and aggregate ratings are formatted into * `Review` and `AggregateRating` objects when provided. * * See `VacationRentalOptions` below for supported inputs. * @returns A JSON-LD compatible `VacationRental` object */ interface ImageRef { url: string; width?: number; height?: number; } interface PersonRef { name: string; url?: string; } interface AddressRef { streetAddress?: string; addressLocality?: string; addressRegion?: string; postalCode?: string; addressCountry?: string; } interface GeoRef { latitude?: number | string; longitude?: number | string; } interface RatingItem { ratingValue: number | string; bestRating?: number | string; worstRating?: number | string; } interface ReviewItem { author?: string | PersonRef; datePublished?: string; reviewBody?: string; reviewRating?: RatingItem; } interface AggregateRatingOptions { ratingValue: number | string; reviewCount?: number; ratingCount?: number; bestRating?: number | string; worstRating?: number | string; } interface VacationRentalOptions { name: string; description?: string; image?: string | ImageRef | (string | ImageRef)[]; url?: string; address?: string | AddressRef; geo?: GeoRef; numberOfRooms?: number; numberOfBeds?: number; priceRange?: string; host?: string | PersonRef; reviews?: ReviewItem[]; aggregateRating?: AggregateRatingOptions; keywords?: string | string[]; } declare const generateVacationRentalSchema: ({ name, description, image, url, address, geo, numberOfRooms, numberOfBeds, priceRange, host, reviews, aggregateRating, keywords, }: VacationRentalOptions) => any; export { generateVacationRentalSchema as default, generateVacationRentalSchema };