/** * Generate schema.org JSON-LD for `Article`, `NewsArticle`, or `BlogPosting`. * * This helper accepts `ArticleSchema` inputs and formats authors, * publisher/logo, images, and optional fields such as `keywords`, * `articleSection`, and `wordCount`. Only supplied fields are emitted in * the resulting object, making the output safe to merge into page * metadata bundles. * * Examples are provided in the interface comments below — consult the * `ArticleSchema` type for full details of supported inputs. * * @param options - Article metadata and optional fields * @returns A JSON-LD compatible Article/NewsArticle/BlogPosting object */ type ArticleType = 'Article' | 'NewsArticle' | 'BlogPosting'; interface ArticleAuthor { name: string; url?: string; } interface ArticleImage { url: string; width?: number; height?: number; } interface ArticlePublisher { name: string; logo?: { url: string; width?: number; height?: number; }; } interface ArticleSchema { type?: ArticleType; headline: string; description?: string; image: string | string[] | ArticleImage | ArticleImage[]; author: string | ArticleAuthor | ArticleAuthor[]; publisher: ArticlePublisher; datePublished: string; dateModified?: string; url?: string; keywords?: string[]; articleSection?: string; wordCount?: number; } declare const generateArticleSchema: ({ type, headline, description, image, author, publisher, datePublished, dateModified, url, keywords, articleSection, wordCount, }: ArticleSchema) => any; export { generateArticleSchema };