/** * Generate schema.org `SoftwareApplication` JSON-LD, optionally including * `Review` and `AggregateRating` data. * * Accepts application metadata (platforms, versions, downloads), images, * author/publisher references, reviews and an aggregate rating. Only * provided fields are emitted in the returned object. * * See `SoftwareAppOptions` below for the input shape. * @returns A JSON-LD compatible `SoftwareApplication` object */ interface ImageRef { url: string; width?: number; height?: number; } interface PersonRef { name: string; url?: string; } interface OrgRef { name: string; url?: string; } interface RatingItem { ratingValue: number | string; bestRating?: number | string; worstRating?: number | string; } interface ReviewItem { author?: string | PersonRef; datePublished?: string; reviewBody?: string; reviewRating?: RatingItem; name?: string; url?: string; publisher?: string | OrgRef; } interface AggregateRatingOptions { ratingValue: number | string; reviewCount?: number; ratingCount?: number; bestRating?: number | string; worstRating?: number | string; } interface SoftwareAppOptions { name: string; description?: string; image?: string | ImageRef; url?: string; softwareVersion?: string; operatingSystem?: string | string[]; applicationCategory?: string | string[]; downloadUrl?: string; author?: string | PersonRef; publisher?: string | OrgRef; reviews?: ReviewItem[]; aggregateRating?: AggregateRatingOptions; } declare const generateSoftwareAppSchema: ({ name, description, image, url, softwareVersion, operatingSystem, applicationCategory, downloadUrl, author, publisher, reviews, aggregateRating, }: SoftwareAppOptions) => any; export { generateSoftwareAppSchema as default, generateSoftwareAppSchema };