/** * Generate schema.org `Event` JSON-LD. * * Supports `Place` and `VirtualLocation` types for `location`, optional * `offers`, performers, organizer, and availability/status normalization. * Currency values are validated with `skipInvalidCurrency` when present. * * See `EventSchemaOptions` below for the complete input shape. * @returns A JSON-LD compatible `Event` object */ interface EventImage { url: string; width?: number; height?: number; } interface EventLocationAddress { streetAddress?: string; addressLocality?: string; postalCode?: string; addressRegion?: string; addressCountry?: string; } interface EventLocation { type?: 'Place' | 'VirtualLocation'; name?: string; url?: string; address?: string | EventLocationAddress; } interface EventOrganizer { name: string; url?: string; } interface EventPerformer { name: string; url?: string; type?: 'Person' | 'Organization'; } interface EventOffer { price?: string | number; priceCurrency?: string; availability?: string; url?: string; priceValidUntil?: string; } interface EventSchemaOptions { name: string; startDate: string; endDate?: string; description?: string; location?: string | EventLocation; url?: string; image?: string | EventImage; organizer?: string | EventOrganizer; performers?: string | EventPerformer | Array; offers?: EventOffer | EventOffer[]; isAccessibleForFree?: boolean; eventStatus?: string; eventAttendanceMode?: string; skipInvalidCurrency?: boolean; } declare const generateEventSchema: ({ name, startDate, endDate, description, location, url, image, organizer, performers, offers, isAccessibleForFree, eventStatus, eventAttendanceMode, skipInvalidCurrency, }: EventSchemaOptions) => any; export { generateEventSchema };