@unhead/schema-org 0.5.0 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1525 @@
1
+ type ItemAvailability = 'BackOrder' | 'Discontinued' | 'InStock' | 'InStoreOnly' | 'LimitedAvailability' | 'OnlineOnly' | 'OutOfStock' | 'PreOrder' | 'PreSale' | 'SoldOut';
2
+ interface OfferSimple extends Thing {
3
+ '@type'?: 'Offer';
4
+ /**
5
+ * A schema.org URL representing a schema itemAvailability value (e.g., https://schema.org/OutOfStock).
6
+ */
7
+ availability?: OptionalSchemaOrgPrefix<ItemAvailability>;
8
+ /**
9
+ * The price, omitting any currency symbols, and using '.' to indicate a decimal place.
10
+ */
11
+ price: number | string;
12
+ /**
13
+ * The currency used to describe the product price, in three-letter ISO 4217 format.
14
+ */
15
+ priceCurrency?: string;
16
+ /**
17
+ * @todo A PriceSpecification object, including a valueAddedTaxIncluded property (of either true or false).
18
+ */
19
+ priceSpecification?: unknown;
20
+ /**
21
+ * The date after which the price is no longer available.
22
+ */
23
+ priceValidUntil?: ResolvableDate;
24
+ url?: string;
25
+ }
26
+ interface Offer extends OfferSimple {
27
+ }
28
+ declare const offerResolver: SchemaOrgNodeDefinition<Offer>;
29
+
30
+ interface AggregateOfferSimple extends Thing {
31
+ /**
32
+ * The lowest price of the group, omitting any currency symbols, and using '.' to indicate a decimal place.
33
+ */
34
+ lowPrice: number | string;
35
+ /**
36
+ * The highest price of the group, omitting any currency symbols, and using '.' to indicate a decimal place.
37
+ */
38
+ highPrice: number | string;
39
+ /**
40
+ * The currency used to describe the product price, in a three-letter ISO 4217 format.
41
+ */
42
+ priceCurrency?: string;
43
+ /**
44
+ * The number of offers in the group
45
+ */
46
+ offerCount?: number | string;
47
+ /**
48
+ * An array of Offer pieces, referenced by ID.
49
+ */
50
+ offers?: NodeRelations<Offer>;
51
+ }
52
+ interface AggregateOffer extends AggregateOfferSimple {
53
+ }
54
+ declare const aggregateOfferResolver: SchemaOrgNodeDefinition<AggregateOffer>;
55
+
56
+ interface AggregateRatingSimple extends Thing {
57
+ '@type'?: 'AggregateRating';
58
+ /**
59
+ * The total number of ratings for the item on your site. At least one of ratingCount or reviewCount is required.
60
+ */
61
+ ratingCount?: number | string;
62
+ /**
63
+ * Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.
64
+ */
65
+ reviewCount?: number | string;
66
+ /**
67
+ * A numerical quality rating for the item, either a number, fraction, or percentage
68
+ * (for example, "4", "60%", or "6 / 10").
69
+ * Google understands the scale for fractions and percentages,
70
+ * since the scale is implied in the fraction itself or the percentage.
71
+ * The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value.
72
+ * If another scale is intended, use bestRating and worstRating.
73
+ */
74
+ ratingValue: number | string;
75
+ /**
76
+ * The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
77
+ */
78
+ bestRating?: number | string;
79
+ /**
80
+ * The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
81
+ */
82
+ worstRating?: number | string;
83
+ }
84
+ interface AggregateRating extends AggregateRatingSimple {
85
+ }
86
+ declare const aggregateRatingResolver: SchemaOrgNodeDefinition<AggregateRating>;
87
+
88
+ interface ImageSimple extends Thing {
89
+ /**
90
+ * The URL of the image file (e.g., /images/cat.jpg).
91
+ */
92
+ url: string;
93
+ /**
94
+ * The fully-qualified, absolute URL of the image file (e.g., https://www.example.com/images/cat.jpg).
95
+ * Note: The contentUrl and url properties are intentionally duplicated.
96
+ */
97
+ contentUrl?: string;
98
+ /**
99
+ * A text string describing the image.
100
+ * - Fall back to the image alt attribute if no specific caption field exists or is defined.
101
+ */
102
+ caption?: string;
103
+ /**
104
+ * The height of the image in pixels.
105
+ * - Must be used with width.
106
+ */
107
+ height?: number;
108
+ /**
109
+ * The width of the image in pixels.
110
+ * - Must be used with height.
111
+ */
112
+ width?: number;
113
+ /**
114
+ * The language code for the textual content; e.g., en-GB.
115
+ * - Only needed when providing a caption.
116
+ */
117
+ inLanguage?: string;
118
+ }
119
+ interface ImageObject extends ImageSimple {
120
+ }
121
+ /**
122
+ * Describes an individual image (usually in the context of an embedded media object).
123
+ */
124
+ declare const imageResolver: SchemaOrgNodeDefinition<ImageObject>;
125
+
126
+ interface VideoSimple extends Thing {
127
+ /**
128
+ * The title of the video.
129
+ */
130
+ name?: string;
131
+ /**
132
+ * A description of the video (falling back to the caption, then to 'No description').
133
+ */
134
+ description?: string;
135
+ /**
136
+ * A reference-by-ID to an imageObject.
137
+ */
138
+ thumbnailUrl?: NodeRelation<ImageObject>;
139
+ /**
140
+ * The date the video was published, in ISO 8601 format (e.g., 2020-01-20).
141
+ */
142
+ uploadDate?: ResolvableDate;
143
+ /**
144
+ * Whether the video should be considered 'family friendly'
145
+ */
146
+ isFamilyFriendly?: boolean;
147
+ /**
148
+ * The URL of the image file (e.g., /images/cat.jpg).
149
+ */
150
+ url: string;
151
+ /**
152
+ * The fully-qualified, absolute URL of the image file (e.g., https://www.example.com/images/cat.jpg).
153
+ * Note: The contentUrl and url properties are intentionally duplicated.
154
+ */
155
+ contentUrl?: string;
156
+ /**
157
+ * A text string describing the image.
158
+ * - Fall back to the image alt attribute if no specific caption field exists or is defined.
159
+ */
160
+ caption?: string;
161
+ /**
162
+ * The height of the image in pixels.
163
+ * - Must be used with width.
164
+ */
165
+ height?: number;
166
+ /**
167
+ * The width of the image in pixels.
168
+ * - Must be used with height.
169
+ */
170
+ width?: number;
171
+ /**
172
+ * The language code for the textual content; e.g., en-GB.
173
+ * - Only needed when providing a caption.
174
+ */
175
+ inLanguage?: string;
176
+ /**
177
+ * The duration of the video in ISO 8601 format.
178
+ */
179
+ duration?: string;
180
+ /**
181
+ * A URL pointing to a player for the video.
182
+ */
183
+ embedUrl?: string;
184
+ }
185
+ interface VideoObject extends VideoSimple {
186
+ }
187
+ /**
188
+ * Describes an individual video (usually in the context of an embedded media object).
189
+ */
190
+ declare const videoResolver: SchemaOrgNodeDefinition<VideoObject>;
191
+
192
+ type ValidArticleSubTypes = 'Article' | 'BlogPosting' | 'AdvertiserContentArticle' | 'NewsArticle' | 'Report' | 'SatiricalArticle' | 'ScholarlyArticle' | 'SocialMediaPosting' | 'TechArticle';
193
+ interface ArticleSimple extends Thing {
194
+ ['@type']?: Arrayable<ValidArticleSubTypes>;
195
+ /**
196
+ * The headline of the article (falling back to the title of the WebPage).
197
+ * Headlines should not exceed 110 characters.
198
+ */
199
+ headline?: string;
200
+ /**
201
+ * A summary of the article (falling back to the page's meta description content).
202
+ */
203
+ description?: string;
204
+ /**
205
+ * A reference-by-ID to the WebPage node.
206
+ */
207
+ isPartOf?: IdReference;
208
+ /**
209
+ * The time at which the article was originally published, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
210
+ */
211
+ datePublished?: ResolvableDate;
212
+ /**
213
+ * The time at which the article was last modified, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
214
+ */
215
+ dateModified?: ResolvableDate;
216
+ /**
217
+ * A reference-by-ID to the author of the article.
218
+ */
219
+ author?: NodeRelations<Identity>;
220
+ /**
221
+ * A reference-by-ID to the publisher of the article.
222
+ */
223
+ publisher?: NodeRelations<Identity>;
224
+ /**
225
+ * An array of all videos in the article content, referenced by ID.
226
+ */
227
+ video?: NodeRelations<VideoObject>;
228
+ /**
229
+ * An image object or referenced by ID.
230
+ * - Must be at least 696 pixels wide.
231
+ * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
232
+ *
233
+ * Must have markup of it somewhere on the page.
234
+ */
235
+ image?: NodeRelations<ImageObject | string>;
236
+ /**
237
+ * An array of references by ID to comment pieces.
238
+ */
239
+ comment?: NodeRelations<Comment>;
240
+ /**
241
+ * A thumbnail image relevant to the Article.
242
+ */
243
+ thumbnailUrl?: string;
244
+ /**
245
+ * An integer value of the number of comments associated with the article.
246
+ */
247
+ commentCount?: number;
248
+ /**
249
+ * An integer value of the number of words in the article.
250
+ */
251
+ wordCount?: number;
252
+ /**
253
+ * An array of keywords which the article has (e.g., ["cats","dogs","cake"]).
254
+ */
255
+ keywords?: string[];
256
+ /**
257
+ * An array of category names which the article belongs to (e.g., ["cats","dogs","cake"]).
258
+ */
259
+ articleSection?: string[];
260
+ /**
261
+ * The language code for the article; e.g., en-GB.
262
+ */
263
+ inLanguage?: string;
264
+ /**
265
+ * A SpeakableSpecification object which identifies any content elements suitable for spoken results.
266
+ */
267
+ speakable?: unknown;
268
+ /**
269
+ * The year from which the article holds copyright status.
270
+ */
271
+ copyrightYear?: string;
272
+ /**
273
+ * A reference-by-ID to the Organization or Person who holds the copyright.
274
+ */
275
+ copyrightHolder?: NodeRelations<Identity>;
276
+ }
277
+ interface Article extends ArticleSimple {
278
+ }
279
+ declare const PrimaryArticleId = "#article";
280
+ /**
281
+ * Describes an Article on a WebPage.
282
+ */
283
+ declare const articleResolver: SchemaOrgNodeDefinition<Article>;
284
+
285
+ type SearchTarget = string | `${string}{search_term_string}${string | undefined}`;
286
+ interface SearchActionInput {
287
+ /**
288
+ * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
289
+ * (e.g., /search?query={search_term_string}).
290
+ */
291
+ target?: SearchTarget;
292
+ /**
293
+ * Alias: The search term string as described in the target (e.g., search_term_string).
294
+ * @default search_term_string
295
+ */
296
+ queryInput?: string;
297
+ }
298
+ interface SearchAction {
299
+ '@type'?: 'SearchAction';
300
+ /**
301
+ * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
302
+ * (e.g., /search?query={search_term_string}).
303
+ */
304
+ target: SearchTarget | {
305
+ '@type'?: 'EntryPoint';
306
+ 'urlTemplate'?: SearchTarget;
307
+ };
308
+ /**
309
+ * The search term string as described in the target (e.g., search_term_string).
310
+ */
311
+ 'query-input'?: {
312
+ '@type'?: 'PropertyValueSpecification';
313
+ 'valueRequired'?: boolean;
314
+ 'valueName'?: 'search_term_string';
315
+ };
316
+ }
317
+ declare const searchActionResolver: SchemaOrgNodeDefinition<SearchAction>;
318
+
319
+ /**
320
+ * A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.
321
+ */
322
+ interface WebSiteSimple extends Thing {
323
+ /**
324
+ * The site's home URL (excluding a trailing slash).
325
+ */
326
+ url?: string;
327
+ /**
328
+ * The name of the website.
329
+ */
330
+ name: string;
331
+ /**
332
+ * A description of the website (e.g., the site's tagline).
333
+ */
334
+ description?: string;
335
+ /**
336
+ * A reference-by-ID to the Organization which publishes the WebSite
337
+ * (or an array of Organization and Person in the case that the website represents an individual).
338
+ */
339
+ publisher?: NodeRelations<Identity>;
340
+ /**
341
+ * A SearchAction object describing the site's internal search.
342
+ */
343
+ potentialAction?: Arrayable<(SearchAction | unknown)>;
344
+ /**
345
+ * The language code for the WebSite; e.g., en-GB.
346
+ * If the website is available in multiple languages, then output an array of inLanguage values.
347
+ */
348
+ inLanguage?: Arrayable<string>;
349
+ }
350
+ interface WebSite extends WebSiteSimple {
351
+ }
352
+ declare const PrimaryWebSiteId = "#website";
353
+ declare const webSiteResolver: SchemaOrgNodeDefinition<WebSite>;
354
+
355
+ interface PostalAddressSimple extends Thing {
356
+ /**
357
+ * The building number and street (e.g., 123 fake road ).
358
+ */
359
+ streetAddress: string;
360
+ /**
361
+ * The postal code.
362
+ */
363
+ postalCode: string;
364
+ /**
365
+ * The two-digit country-code representing the country (e.g., US ).
366
+ */
367
+ addressCountry: string;
368
+ /**
369
+ * The town, city or equivalent.
370
+ */
371
+ addressLocality?: string;
372
+ /**
373
+ * The region or district.
374
+ */
375
+ addressRegion?: string;
376
+ /**
377
+ * A PO box number.
378
+ */
379
+ postOfficeBoxNumber?: string;
380
+ }
381
+ interface PostalAddress extends PostalAddressSimple {
382
+ }
383
+ declare const addressResolver: SchemaOrgNodeDefinition<PostalAddress>;
384
+
385
+ /**
386
+ * An organization such as a school, NGO, corporation, club, etc.
387
+ */
388
+ interface OrganizationSimple extends Thing {
389
+ /**
390
+ * A reference-by-ID to an image of the organization's logo.
391
+ *
392
+ * - The image must be 112x112px, at a minimum.
393
+ * - Make sure the image looks how you intend it to look on a purely white background
394
+ * (for example, if the logo is mostly white or gray,
395
+ * it may not look how you want it to look when displayed on a white background).
396
+ */
397
+ logo?: NodeRelation<ImageObject | string>;
398
+ /**
399
+ * The site's home URL.
400
+ */
401
+ url?: string;
402
+ /**
403
+ * The name of the Organization.
404
+ */
405
+ name: string;
406
+ /**
407
+ * An array of URLs representing declared social/authoritative profiles of the organization
408
+ * (e.g., a Wikipedia page, or Facebook profile).
409
+ */
410
+ sameAs?: Arrayable<string>;
411
+ /**
412
+ * An array of images which represent the organization (including the logo ), referenced by ID.
413
+ */
414
+ image?: NodeRelations<ImageObject | string>;
415
+ /**
416
+ * A reference-by-ID to an PostalAddress piece.
417
+ */
418
+ address?: NodeRelations<PostalAddress>;
419
+ }
420
+ interface Organization extends OrganizationSimple {
421
+ }
422
+ /**
423
+ * Describes an organization (a company, business or institution).
424
+ * Most commonly used to identify the publisher of a WebSite.
425
+ *
426
+ * May be transformed into a more specific type
427
+ * (such as Corporation or LocalBusiness) if the required conditions are met.
428
+ */
429
+ declare const organizationResolver: SchemaOrgNodeDefinition<Organization>;
430
+
431
+ /**
432
+ * A list item, e.g. a step in a checklist or how-to description.
433
+ */
434
+ interface ListItemSimple extends Thing {
435
+ '@type'?: 'ListItem';
436
+ /**
437
+ * The name of the page in question, as it appears in the breadcrumb navigation.
438
+ */
439
+ name?: string;
440
+ /**
441
+ * The unmodified canonical URL of the page in question.
442
+ * - If a relative path is provided, it will be resolved to absolute.
443
+ * - Item is not required for the last entry
444
+ */
445
+ item?: string | Thing;
446
+ /**
447
+ * An integer (starting at 1), counting the 'depth' of the page from (including) the homepage.
448
+ */
449
+ position?: number;
450
+ }
451
+ interface ListItem extends ListItemSimple {
452
+ }
453
+ declare const listItemResolver: SchemaOrgNodeDefinition<ListItem>;
454
+
455
+ interface ItemListSimple extends Thing {
456
+ /**
457
+ * Resolved item list
458
+ */
459
+ itemListElement: NodeRelations<ListItem>;
460
+ /**
461
+ * Type of ordering (e.g. Ascending, Descending, Unordered).
462
+ *
463
+ * @default undefined
464
+ */
465
+ itemListOrder?: 'Ascending' | 'Descending' | 'Unordered';
466
+ /**
467
+ * The number of items in an ItemList.
468
+ * Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination);
469
+ * in such cases, the numberOfItems would be for the entire list.
470
+ *
471
+ * @default undefined
472
+ */
473
+ numberOfItems?: number;
474
+ }
475
+ interface ItemList extends ItemListSimple {
476
+ }
477
+ declare const itemListResolver: SchemaOrgNodeDefinition<ItemList>;
478
+
479
+ /**
480
+ * A BreadcrumbList is an ItemList consisting of a chain of linked Web pages,
481
+ * typically described using at least their URL and their name, and typically ending with the current page.
482
+ */
483
+ interface BreadcrumbSimple extends ItemList {
484
+ '@type'?: 'BreadcrumbList';
485
+ }
486
+ interface BreadcrumbList extends BreadcrumbSimple {
487
+ }
488
+ declare const PrimaryBreadcrumbId = "#breadcrumb";
489
+ /**
490
+ * Describes the hierarchical position a WebPage within a WebSite.
491
+ */
492
+ declare const breadcrumbResolver: SchemaOrgNodeDefinition<BreadcrumbList>;
493
+
494
+ /**
495
+ * A person (alive, dead, undead, or fictional).
496
+ */
497
+ interface PersonSimple extends Thing {
498
+ /**
499
+ * The full name of the Person.
500
+ */
501
+ name: string;
502
+ /**
503
+ * The user bio, truncated to 250 characters.
504
+ */
505
+ description?: string;
506
+ /**
507
+ * An array of URLs representing declared social/authoritative profiles of the person
508
+ * (e.g., a Wikipedia page, or Facebook profile).
509
+ */
510
+ sameAs?: Arrayable<string>;
511
+ /**
512
+ * An array of images which represent the person, referenced by ID.
513
+ */
514
+ image?: NodeRelations<ImageObject | string>;
515
+ /**
516
+ * The URL of the users' profile page (if they're affiliated with the site in question),
517
+ * or to their personal homepage/website.
518
+ */
519
+ url?: string;
520
+ }
521
+ interface Person extends PersonSimple {
522
+ }
523
+ /**
524
+ * Describes an individual person. Most commonly used to identify the author of a piece of content (such as an Article or Comment).
525
+ */
526
+ declare const personResolver: SchemaOrgNodeDefinition<Person>;
527
+
528
+ interface ReadActionInput {
529
+ target?: string[];
530
+ }
531
+ interface ReadAction {
532
+ '@type'?: 'ReadAction';
533
+ /**
534
+ * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
535
+ * (e.g., /search?query={search_term_string}).
536
+ */
537
+ target: string[];
538
+ }
539
+ declare const readActionResolver: SchemaOrgNodeDefinition<ReadAction>;
540
+
541
+ type ValidSubTypes = 'WebPage' | 'AboutPage' | 'CheckoutPage' | 'CollectionPage' | 'ContactPage' | 'FAQPage' | 'ItemPage' | 'MedicalWebPage' | 'ProfilePage' | 'QAPage' | 'RealEstateListing' | 'SearchResultsPage';
542
+ /**
543
+ * A web page.
544
+ * Every web page is implicitly assumed to be declared to be of type WebPage,
545
+ * so the various properties about that webpage, such as breadcrumb may be used.
546
+ */
547
+ interface WebPageSimple extends Thing {
548
+ ['@type']?: Arrayable<ValidSubTypes>;
549
+ /**
550
+ * The unmodified canonical URL of the page.
551
+ */
552
+ url?: string;
553
+ /**
554
+ * The title of the page.
555
+ */
556
+ name?: string;
557
+ /**
558
+ * The page's meta description content.
559
+ */
560
+ description?: string;
561
+ /**
562
+ * A reference-by-ID to the WebSite node.
563
+ */
564
+ isPartOf?: NodeRelation<WebSite>;
565
+ /**
566
+ * A reference-by-ID to the Organisation node.
567
+ * Note: Only for the home page.
568
+ */
569
+ about?: NodeRelation<Organization>;
570
+ /**
571
+ * A reference-by-ID to the author of the web page.
572
+ */
573
+ author?: NodeRelation<Person | string>;
574
+ /**
575
+ * The language code for the page; e.g., en-GB.
576
+ */
577
+ inLanguage?: Arrayable<string>;
578
+ /**
579
+ * The time at which the page was originally published, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
580
+ */
581
+ datePublished?: ResolvableDate;
582
+ /**
583
+ * The time at which the page was last modified, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
584
+ */
585
+ dateModified?: ResolvableDate;
586
+ /**
587
+ * A reference-by-ID to a node representing the page's featured image.
588
+ */
589
+ primaryImageOfPage?: NodeRelation<ImageObject | string>;
590
+ /**
591
+ * A reference-by-ID to a node representing the page's breadrumb structure.
592
+ */
593
+ breadcrumb?: NodeRelation<BreadcrumbList>;
594
+ /**
595
+ * An array of all videos in the page content, referenced by ID.
596
+ */
597
+ video?: NodeRelations<VideoObject>;
598
+ /**
599
+ * A SpeakableSpecification object which identifies any content elements suitable for spoken results.
600
+ */
601
+ speakable?: unknown;
602
+ /**
603
+ * Potential actions for this web page.
604
+ *
605
+ * Note it's on by default for most page types.
606
+ */
607
+ potentialAction?: Arrayable<(ReadAction | unknown)>;
608
+ }
609
+ interface WebPage extends WebPageSimple {
610
+ }
611
+ declare const PrimaryWebPageId = "#webpage";
612
+ declare const webPageResolver: SchemaOrgNodeDefinition<WebPage>;
613
+
614
+ interface BookSimple extends Thing {
615
+ /**
616
+ * The title of the book.
617
+ */
618
+ name: string;
619
+ /**
620
+ * A description of the course. Display limit of 60 characters.
621
+ */
622
+ description?: string;
623
+ /**
624
+ * A reference to an Organization piece, representing brand associated with the Product.
625
+ */
626
+ author?: NodeRelation<Identity>;
627
+ /**
628
+ * The URL on your website where the book is introduced or described.
629
+ */
630
+ url?: string;
631
+ /**
632
+ * The URL of a reference page that identifies the work. For example, a Wikipedia, Wikidata, VIAF, or Library of Congress page for the book.
633
+ */
634
+ sameAs?: Arrayable<string>;
635
+ /**
636
+ * The edition(s) of the work.
637
+ */
638
+ workExample: NodeRelations<BookEdition>;
639
+ }
640
+ interface Book extends BookSimple {
641
+ }
642
+ type BookFormat = OptionalSchemaOrgPrefix<'AudiobookFormat'> | OptionalSchemaOrgPrefix<'EBook'> | OptionalSchemaOrgPrefix<'Hardcover'> | OptionalSchemaOrgPrefix<'Paperback'>;
643
+ interface BookEditionSimple extends Thing {
644
+ /**
645
+ * The title of the edition. Only use this when the title of the edition is different from the title of the work.
646
+ */
647
+ name?: string;
648
+ /**
649
+ * The format of the edition.
650
+ */
651
+ bookFormat: BookFormat;
652
+ /**
653
+ * The main language of the content in the edition. Use one of the two-letter codes from the list of ISO 639-1 alpha-2 codes.
654
+ */
655
+ inLanguage?: string;
656
+ /**
657
+ * The ISBN-13 of the edition. If you have ISBN-10, convert it into ISBN-13.
658
+ */
659
+ isbn: string;
660
+ /**
661
+ * The action to be triggered for users to purchase or download the book.
662
+ */
663
+ potentialAction?: Arrayable<ReadAction | any>;
664
+ /**
665
+ * The author(s) of the edition.
666
+ */
667
+ author?: NodeRelations<Identity>;
668
+ /**
669
+ * The edition information of the book. For example, 2nd Edition.
670
+ */
671
+ bookEdition?: string;
672
+ /**
673
+ * The date of publication of the edition in YYYY-MM-DD or YYYY format. This can be either a specific date or only a specific year.
674
+ */
675
+ datePublished?: ResolvableDate;
676
+ /**
677
+ * The external or other ID that unambiguously identifies this edition. Multiple identifiers are allowed. For more details, refer to PropertyValue (identifier).
678
+ */
679
+ identifier?: unknown;
680
+ /**
681
+ * The URL of a reference web page that unambiguously indicates the edition. For example, a Wikipedia page for this specific edition. Don't reuse the sameAs of the Work.
682
+ */
683
+ sameAs?: Arrayable<string>;
684
+ /**
685
+ * The URL on your website where the edition is introduced or described. It can be the same as workExample.target.urlTemplate.
686
+ */
687
+ url?: string;
688
+ }
689
+ interface BookEdition extends BookEditionSimple {
690
+ }
691
+ declare const bookEditionResolver: SchemaOrgNodeDefinition<BookEdition>;
692
+ declare const PrimaryBookId = "#book";
693
+ declare const bookResolver: SchemaOrgNodeDefinition<Book>;
694
+
695
+ interface CommentSimple extends Thing {
696
+ /**
697
+ * The textual content of the comment, stripping HTML tags.
698
+ */
699
+ text: string;
700
+ /**
701
+ * A reference by ID to the parent Article (or WebPage, when no Article is present).
702
+ */
703
+ about?: IdReference;
704
+ /**
705
+ * A reference by ID to the Person who wrote the comment.
706
+ */
707
+ author: NodeRelation<Person>;
708
+ }
709
+ interface Comment$1 extends CommentSimple {
710
+ }
711
+ /**
712
+ * Describes a review. Usually in the context of an Article or a WebPage.
713
+ */
714
+ declare const commentResolver: SchemaOrgNodeDefinition<Comment$1>;
715
+
716
+ /**
717
+ * Any offered product or service.
718
+ * For example: a pair of shoes; a concert ticket; the rental of a car;
719
+ * a haircut; or an episode of a TV show streamed online.
720
+ */
721
+ interface CourseSimple extends Thing {
722
+ /**
723
+ * The title of the course.
724
+ */
725
+ name: string;
726
+ /**
727
+ * A description of the course. Display limit of 60 characters.
728
+ */
729
+ description?: string;
730
+ /**
731
+ * A reference to an Organization piece, representing brand associated with the Product.
732
+ */
733
+ provider?: NodeRelation<Organization>;
734
+ }
735
+ interface Course extends CourseSimple {
736
+ }
737
+ declare const courseResolver: SchemaOrgNodeDefinition<Course>;
738
+
739
+ interface PlaceSimple extends Thing {
740
+ '@type'?: 'Place';
741
+ name: string;
742
+ address: NodeRelation<PostalAddress | string>;
743
+ latitude?: number | string;
744
+ longitude?: number | string;
745
+ }
746
+ interface Place extends PlaceSimple {
747
+ }
748
+ /**
749
+ * Describes a HowTo guide, which contains a series of steps.
750
+ */
751
+ declare const placeResolver: SchemaOrgNodeDefinition<Place>;
752
+
753
+ interface VirtualLocationSimple extends Thing {
754
+ '@type'?: 'VirtualLocation';
755
+ url: string;
756
+ }
757
+ interface VirtualLocation extends VirtualLocationSimple {
758
+ }
759
+ /**
760
+ * Describes a HowTo guide, which contains a series of steps.
761
+ */
762
+ declare const virtualLocationResolver: SchemaOrgNodeDefinition<VirtualLocation>;
763
+
764
+ type EventAttendanceModeTypes = 'OfflineEventAttendanceMode' | 'OnlineEventAttendanceMode' | 'MixedEventAttendanceMode';
765
+ type EventStatusTypes = 'EventCancelled' | 'EventMovedOnline' | 'EventPostponed' | 'EventRescheduled' | 'EventScheduled';
766
+ interface EventSimple extends Thing {
767
+ /**
768
+ * Description of the event.
769
+ * Describe all details of the event to make it easier for users to understand and attend the event.
770
+ */
771
+ description?: string;
772
+ /**
773
+ * The end date and time of the item (in ISO 8601 date format).
774
+ */
775
+ endDate?: ResolvableDate;
776
+ /**
777
+ * The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.
778
+ */
779
+ eventAttendanceMode?: OptionalSchemaOrgPrefix<EventAttendanceModeTypes>;
780
+ /**
781
+ * An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.
782
+ */
783
+ eventStatus?: OptionalSchemaOrgPrefix<EventStatusTypes>;
784
+ /**
785
+ * Repeated ImageObject or URL
786
+ *
787
+ * URL of an image or logo for the event or tour.
788
+ * Including an image helps users understand and engage with your event.
789
+ * We recommend that images are 1920px wide (the minimum width is 720px).
790
+ */
791
+ image?: NodeRelations<ImageObject | string>;
792
+ /**
793
+ * The location of the event.
794
+ * There are different requirements depending on if the event is happening online or at a physical location
795
+ */
796
+ location?: NodeRelations<Place | VirtualLocation | string>;
797
+ /**
798
+ * An offer to provide this item—for example, an offer to sell a product,
799
+ * rent the DVD of a movie, perform a service, or give away tickets to an event.
800
+ * Use businessFunction to indicate the kind of transaction offered, i.e. sell, lease, etc.
801
+ * This property can also be used to describe a Demand.
802
+ * While this property is listed as expected on a number of common types, it can be used in others.
803
+ * In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.
804
+ */
805
+ offers?: NodeRelations<Offer | string>;
806
+ /**
807
+ * An organizer of an Event.
808
+ */
809
+ organizer?: NodeRelation<Identity>;
810
+ /**
811
+ * A performer at the event—for example, a presenter, musician, musical group or actor.
812
+ */
813
+ performer?: NodeRelation<Person>;
814
+ /**
815
+ * Used in conjunction with eventStatus for rescheduled or cancelled events.
816
+ * This property contains the previously scheduled start date.
817
+ * For rescheduled events, the startDate property should be used for the newly scheduled start date.
818
+ * In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.
819
+ */
820
+ previousStartDate?: ResolvableDate;
821
+ /**
822
+ * The start date and time of the item (in ISO 8601 date format).
823
+ */
824
+ startDate?: ResolvableDate;
825
+ }
826
+ interface Event extends EventSimple {
827
+ }
828
+ declare const PrimaryEventId = "#event";
829
+ /**
830
+ * Describes an Article on a WebPage.
831
+ */
832
+ declare const eventResolver: SchemaOrgNodeDefinition<Event>;
833
+
834
+ interface HowToDirection extends Thing {
835
+ /**
836
+ * The text of the direction or tip.
837
+ */
838
+ text: string;
839
+ }
840
+ /**
841
+ * Describes a HowTo guide, which contains a series of steps.
842
+ */
843
+ declare const howToStepDirectionResolver: SchemaOrgNodeDefinition<HowToDirection>;
844
+
845
+ interface HowToStepSimple extends Thing {
846
+ /**
847
+ * A link to a fragment identifier (an 'ID anchor') of the individual step
848
+ * (e.g., https://www.example.com/example-page/#recipe-step-5).
849
+ */
850
+ url?: string;
851
+ /**
852
+ * The instruction string
853
+ * ("e.g., "Bake at 200*C for 40 minutes, or until golden-brown, stirring periodically throughout").
854
+ */
855
+ text: string;
856
+ /**
857
+ * The word or short phrase summarizing the step (for example, "Attach wires to post" or "Dig").
858
+ * Don't use non-descriptive text (for example, "Step 1: [text]") or other form of step number (for example, "1. [text]").
859
+ */
860
+ name?: string;
861
+ /**
862
+ * An image representing the step, referenced by ID.
863
+ */
864
+ image?: NodeRelations<ImageObject | string>;
865
+ /**
866
+ * A video for this step or a clip of the video.
867
+ */
868
+ video?: NodeRelations<VideoObject | string>;
869
+ /**
870
+ * A list of detailed substeps, including directions or tips.
871
+ */
872
+ itemListElement?: NodeRelations<HowToDirection | string>[];
873
+ }
874
+ interface HowToStep extends HowToStepSimple {
875
+ }
876
+ /**
877
+ * Describes a HowTo guide, which contains a series of steps.
878
+ */
879
+ declare const howToStepResolver: SchemaOrgNodeDefinition<HowToStep>;
880
+
881
+ /**
882
+ * Instructions that explain how to achieve a result by performing a sequence of steps.
883
+ */
884
+ interface HowToSimple extends Thing {
885
+ /**
886
+ * A string describing the guide.
887
+ */
888
+ name: string;
889
+ /**
890
+ * An array of howToStep objects
891
+ */
892
+ step: NodeRelations<HowToStep | string>[];
893
+ /**
894
+ * The total time required to perform all instructions or directions (including time to prepare the supplies),
895
+ * in ISO 8601 duration format.
896
+ */
897
+ totalTime?: string;
898
+ /**
899
+ * Introduction or description content relating to the HowTo guide.
900
+ */
901
+ description?: string;
902
+ /**
903
+ * The language code for the guide; e.g., en-GB.
904
+ */
905
+ inLanguage?: string;
906
+ /**
907
+ * The estimated cost of the supplies consumed when performing instructions.
908
+ */
909
+ estimatedCost?: string | unknown;
910
+ /**
911
+ * Image of the completed how-to.
912
+ */
913
+ image?: NodeRelations<ImageObject | string>;
914
+ /**
915
+ * A supply consumed when performing instructions or a direction.
916
+ */
917
+ supply?: string | unknown;
918
+ /**
919
+ * An object used (but not consumed) when performing instructions or a direction.
920
+ */
921
+ tool?: string | unknown;
922
+ /**
923
+ * A video of the how-to. Follow the list of required and recommended Video properties.
924
+ * Mark steps of the video with hasPart.
925
+ */
926
+ video?: NodeRelations<VideoObject | string>;
927
+ }
928
+ interface HowTo extends HowToSimple {
929
+ }
930
+ declare const HowToId = "#howto";
931
+ /**
932
+ * Describes a HowTo guide, which contains a series of steps.
933
+ */
934
+ declare const howToResolver: SchemaOrgNodeDefinition<HowTo>;
935
+
936
+ interface MonetaryAmountSimple extends Thing {
937
+ /**
938
+ * The currency in which the monetary amount is expressed.
939
+ */
940
+ currency: string;
941
+ /**
942
+ * The value of the quantitative value or property value node.
943
+ */
944
+ value: QuantitativeValue;
945
+ }
946
+ interface MonetaryAmount extends MonetaryAmountSimple {
947
+ }
948
+ interface QuantitativeSimple extends Thing {
949
+ value?: number;
950
+ minValue?: number;
951
+ maxValue?: number;
952
+ unitText: 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR';
953
+ }
954
+ interface QuantitativeValue extends QuantitativeSimple {
955
+ }
956
+
957
+ interface JobPostingSimple extends Thing {
958
+ /**
959
+ * The original date that employer posted the job in ISO 8601 format.
960
+ * For example, "2017-01-24" or "2017-01-24T19:33:17+00:00".
961
+ */
962
+ datePosted: ResolvableDate;
963
+ /**
964
+ * The full description of the job in HTML format.
965
+ *
966
+ * The description must be a complete representation of the job, including job responsibilities, qualifications,
967
+ * skills, working hours, education requirements, and experience requirements. The description can't be the same as
968
+ * the title
969
+ */
970
+ description: string;
971
+ /**
972
+ * The organization offering the job position. This must be the name of the company (for example, "Starbucks, Inc"),
973
+ * and not the specific location that is hiring (for example, "Starbucks on Main Street").
974
+ */
975
+ hiringOrganization: NodeRelation<Organization>;
976
+ /**
977
+ * The physical location(s) of the business where the employee will report to work (such as an office or worksite),
978
+ * not the location where the job was posted. Include as many properties as possible. The more properties you provide,
979
+ * the higher quality the job posting is to our users. Note that you must include the addressCountry property.
980
+ */
981
+ jobLocation: NodeRelation<Place>;
982
+ /**
983
+ * The title of the job (not the title of the posting). For example, "Software Engineer" or "Barista"
984
+ */
985
+ title: string;
986
+ /**
987
+ * The actual base salary for the job, as provided by the employer (not an estimate).
988
+ */
989
+ baseSalary?: MonetaryAmount;
990
+ /**
991
+ * Type of employment
992
+ */
993
+ employmentType?: EmploymentType | EmploymentType[];
994
+ /**
995
+ * The date when the job posting will expire in ISO 8601 format. For example, "2017-02-24"
996
+ * or "2017-02-24T19:33:17+00:00".
997
+ */
998
+ validThrough?: ResolvableDate;
999
+ /**
1000
+ * A description of the job location (e.g. TELECOMMUTE for telecommute jobs).
1001
+ */
1002
+ jobLocationType?: 'TELECOMMUTE';
1003
+ /**
1004
+ * Indicates whether the URL that's associated with this job posting enables direct application for the job.
1005
+ */
1006
+ directApply?: boolean;
1007
+ }
1008
+ interface JobPosting extends JobPostingSimple {
1009
+ }
1010
+ declare const jobPostingResolver: SchemaOrgNodeDefinition<JobPosting>;
1011
+ type EmploymentType = 'FULL_TIME' | 'PART_TIME' | 'CONTRACTOR' | 'TEMPORARY' | 'INTERN' | 'VOLUNTEER' | 'PER_DIEM' | 'OTHER';
1012
+
1013
+ type DayOfWeek = 'Friday' | 'Monday' | 'PublicHolidays' | 'Saturday' | 'Sunday' | 'Thursday' | 'Tuesday' | 'Wednesday';
1014
+ type Time = `${number}${number}:${number}${number}`;
1015
+ interface OpeningHoursSimple extends Thing {
1016
+ '@type'?: 'OpeningHoursSpecification';
1017
+ /**
1018
+ * The day of the week for which these opening hours are valid.
1019
+ */
1020
+ dayOfWeek: Arrayable<DayOfWeek>;
1021
+ /**
1022
+ * The opening hour of the place or service on the given day(s) of the week.
1023
+ */
1024
+ opens?: Time;
1025
+ /**
1026
+ * The closing hour of the place or service on the given day(s) of the week.
1027
+ */
1028
+ closes?: Time;
1029
+ /**
1030
+ * The date when the item becomes valid.
1031
+ */
1032
+ validFrom?: ResolvableDate;
1033
+ /**
1034
+ * The date after when the item is not valid. For example, the end of an offer, salary period, or a period of opening hours.
1035
+ */
1036
+ validThrough?: ResolvableDate;
1037
+ }
1038
+ interface OpeningHoursSpecification extends OpeningHoursSimple {
1039
+ }
1040
+ declare const openingHoursResolver: SchemaOrgNodeDefinition<OpeningHoursSpecification>;
1041
+
1042
+ type ValidLocalBusinessSubTypes = 'AnimalShelter' | 'ArchiveOrganization' | 'AutomotiveBusiness' | 'ChildCare' | 'Dentist' | 'DryCleaningOrLaundry' | 'EmergencyService' | 'EmploymentAgency' | 'EntertainmentBusiness' | 'FinancialService' | 'FoodEstablishment' | 'GovernmentOffice' | 'HealthAndBeautyBusiness' | 'HomeAndConstructionBusiness' | 'InternetCafe' | 'LegalService' | 'Library' | 'LodgingBusiness' | 'MedicalBusiness' | 'ProfessionalService' | 'RadioStation' | 'RealEstateAgent' | 'RecyclingCenter' | 'SelfStorage' | 'ShoppingCenter' | 'SportsActivityLocation' | 'Store' | 'TelevisionStation' | 'TouristInformationCenter' | 'TravelAgency';
1043
+ interface LocalBusinessSimple extends Organization {
1044
+ '@type'?: ['Organization', 'LocalBusiness'] | ['Organization', 'LocalBusiness', ValidLocalBusinessSubTypes] | ValidLocalBusinessSubTypes;
1045
+ /**
1046
+ * The primary public telephone number of the business.
1047
+ */
1048
+ telephone?: string;
1049
+ /**
1050
+ * The primary public email address of the business.
1051
+ */
1052
+ email?: string;
1053
+ /**
1054
+ * The primary public fax number of the business.
1055
+ */
1056
+ faxNumber?: string;
1057
+ /**
1058
+ * The price range of the business, represented by a string of dollar symbols (e.g., $, $$, or $$$ ).
1059
+ */
1060
+ priceRange?: string;
1061
+ /**
1062
+ * An array of GeoShape, Place or string definitions.
1063
+ */
1064
+ areaServed?: unknown;
1065
+ /**
1066
+ * A GeoCoordinates object.
1067
+ */
1068
+ geo?: unknown;
1069
+ /**
1070
+ * The VAT ID of the business.
1071
+ */
1072
+ vatID?: string;
1073
+ /**
1074
+ * The tax ID of the business.
1075
+ */
1076
+ taxID?: string;
1077
+ /**
1078
+ * The currency accepted.
1079
+ */
1080
+ currenciesAccepted?: string;
1081
+ /**
1082
+ * The operating hours of the business.
1083
+ */
1084
+ openingHoursSpecification?: NodeRelations<OpeningHoursSpecification>;
1085
+ }
1086
+ interface LocalBusiness extends LocalBusinessSimple {
1087
+ }
1088
+ /**
1089
+ * Describes a business which allows public visitation.
1090
+ * Typically, used to represent the business 'behind' the website, or on a page about a specific business.
1091
+ */
1092
+ declare const localBusinessResolver: SchemaOrgNodeDefinition<LocalBusiness>;
1093
+
1094
+ interface RatingSimple extends Thing {
1095
+ '@type'?: 'Rating';
1096
+ /**
1097
+ * A numerical quality rating for the item, either a number, fraction, or percentage
1098
+ * (for example, "4", "60%", or "6 / 10").
1099
+ * Google understands the scale for fractions and percentages,
1100
+ * since the scale is implied in the fraction itself or the percentage.
1101
+ * The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value.
1102
+ * If another scale is intended, use bestRating and worstRating.
1103
+ */
1104
+ ratingValue: number | string;
1105
+ /**
1106
+ * The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
1107
+ */
1108
+ bestRating?: number;
1109
+ /**
1110
+ * The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
1111
+ */
1112
+ worstRating?: number;
1113
+ }
1114
+ interface Rating extends RatingSimple {
1115
+ }
1116
+ declare const ratingResolver: SchemaOrgNodeDefinition<Rating>;
1117
+
1118
+ interface ReviewSimple extends Thing {
1119
+ /**
1120
+ * A title for the review.
1121
+ */
1122
+ name?: string;
1123
+ /**
1124
+ * The author of the review.
1125
+ */
1126
+ author: NodeRelation<Person | string>;
1127
+ /**
1128
+ * An answer object, with a text property which contains the answer to the question.
1129
+ */
1130
+ reviewRating: NodeRelation<Rating | number>;
1131
+ /**
1132
+ * The language code for the question; e.g., en-GB.
1133
+ */
1134
+ inLanguage?: string;
1135
+ /**
1136
+ * The date that the review was published, in ISO 8601 date format.
1137
+ */
1138
+ datePublished?: ResolvableDate;
1139
+ /**
1140
+ * The text content of the review.
1141
+ */
1142
+ reviewBody?: string;
1143
+ }
1144
+ interface Review extends ReviewSimple {
1145
+ }
1146
+ declare const reviewResolver: SchemaOrgNodeDefinition<Review>;
1147
+
1148
+ interface MovieSimple extends Thing {
1149
+ /**
1150
+ * An image that represents the movie.
1151
+ */
1152
+ image: NodeRelations<string | ImageObject>;
1153
+ /**
1154
+ * The name of the movie.
1155
+ */
1156
+ name: string;
1157
+ /**
1158
+ * Annotation for the average review score assigned to the movie.
1159
+ */
1160
+ aggregateRating?: NodeRelation<AggregateRating>;
1161
+ /**
1162
+ * The date the movie was released.
1163
+ */
1164
+ dateCreated?: ResolvableDate;
1165
+ /**
1166
+ * The director of the movie.
1167
+ */
1168
+ director?: NodeRelations<Person | string>;
1169
+ /**
1170
+ * The director of the movie.
1171
+ */
1172
+ actor?: NodeRelations<Person | string>;
1173
+ /**
1174
+ * A nested Review of the movie.
1175
+ */
1176
+ review?: NodeRelations<Review>;
1177
+ /**
1178
+ * The trailer of a movie or TV/radio series, season, episode, etc.
1179
+ */
1180
+ trailer?: NodeRelations<string | VideoObject>;
1181
+ }
1182
+ interface Movie extends MovieSimple {
1183
+ }
1184
+ declare const movieResolver: SchemaOrgNodeDefinition<Movie>;
1185
+
1186
+ /**
1187
+ * Any offered product or service.
1188
+ * For example: a pair of shoes; a concert ticket; the rental of a car;
1189
+ * a haircut; or an episode of a TV show streamed online.
1190
+ */
1191
+ interface ProductSimple extends Thing {
1192
+ /**
1193
+ * The name of the product.
1194
+ */
1195
+ name: string;
1196
+ /**
1197
+ * A reference-by-ID to one or more imageObject's which represent the product.
1198
+ * - Must be at least 696 pixels wide.
1199
+ * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
1200
+ */
1201
+ image: NodeRelations<ImageObject | string>;
1202
+ /**
1203
+ * An array of references-by-ID to one or more Offer or aggregateOffer pieces.
1204
+ */
1205
+ offers?: NodeRelations<Offer | number>;
1206
+ /**
1207
+ * A reference to an Organization piece, representing brand associated with the Product.
1208
+ */
1209
+ brand?: NodeRelation<Organization>;
1210
+ /**
1211
+ * A reference to an Organization piece which represents the WebSite.
1212
+ */
1213
+ seller?: NodeRelation<Organization>;
1214
+ /**
1215
+ * A text description of the product.
1216
+ */
1217
+ description?: string;
1218
+ /**
1219
+ * An array of references-by-id to one or more Review pieces.
1220
+ */
1221
+ review?: NodeRelations<Review>;
1222
+ /**
1223
+ * A merchant-specific identifier for the Product.
1224
+ */
1225
+ sku?: string;
1226
+ /**
1227
+ * An AggregateRating object.
1228
+ */
1229
+ aggregateRating?: NodeRelation<AggregateRating>;
1230
+ /**
1231
+ * An AggregateOffer object.
1232
+ */
1233
+ aggregateOffer?: NodeRelation<AggregateOffer>;
1234
+ /**
1235
+ * A reference to an Organization piece, representing the brand which produces the Product.
1236
+ */
1237
+ manufacturer?: NodeRelation<Organization>;
1238
+ }
1239
+ interface Product extends ProductSimple {
1240
+ }
1241
+ declare const ProductId = "#product";
1242
+ declare const productResolver: SchemaOrgNodeDefinition<Product>;
1243
+
1244
+ /**
1245
+ * An answer offered to a question; perhaps correct, perhaps opinionated or wrong.
1246
+ */
1247
+ interface AnswerSimple extends Thing {
1248
+ text: string;
1249
+ }
1250
+ interface Answer extends AnswerSimple {
1251
+ }
1252
+
1253
+ /**
1254
+ * A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.
1255
+ */
1256
+ interface QuestionSimple extends Thing {
1257
+ /**
1258
+ * The text content of the question.
1259
+ */
1260
+ name: string;
1261
+ /**
1262
+ * An answer object, with a text property which contains the answer to the question.
1263
+ */
1264
+ acceptedAnswer: NodeRelation<Answer | string>;
1265
+ /**
1266
+ * The language code for the question; e.g., en-GB.
1267
+ */
1268
+ inLanguage?: string;
1269
+ /**
1270
+ * Alias for `name`
1271
+ */
1272
+ question?: string;
1273
+ /**
1274
+ * Alias for `acceptedAnswer`
1275
+ */
1276
+ answer?: string;
1277
+ }
1278
+ interface Question extends QuestionSimple {
1279
+ }
1280
+ /**
1281
+ * Describes a Question. Most commonly used in FAQPage or QAPage content.
1282
+ */
1283
+ declare const questionResolver: SchemaOrgNodeDefinition<Question>;
1284
+
1285
+ interface RecipeSimple extends Thing {
1286
+ /**
1287
+ * A string describing the recipe.
1288
+ */
1289
+ name?: string;
1290
+ /**
1291
+ * An image representing the completed recipe, referenced by ID.
1292
+ */
1293
+ image?: NodeRelation<ImageObject | string>;
1294
+ /**
1295
+ * An array of strings representing each ingredient and quantity (e.g., "3 apples").
1296
+ */
1297
+ recipeIngredient: string[];
1298
+ /**
1299
+ * An array of HowToStep objects.
1300
+ */
1301
+ recipeInstructions: NodeRelations<HowToStep | string>;
1302
+ /**
1303
+ * A string describing the recipe.
1304
+ */
1305
+ description?: string;
1306
+ /**
1307
+ * The cooking time in ISO 8601 format.
1308
+ */
1309
+ cookTime?: string;
1310
+ /**
1311
+ * The time required to prepare the recipe.
1312
+ */
1313
+ prepTime?: string;
1314
+ /**
1315
+ * A NutritionInformation node, with a calories property which defines a calorie count as a string (e.g., "270 calories").
1316
+ */
1317
+ nutrition?: NutritionInformation;
1318
+ /**
1319
+ * The number of servings the recipe creates (not the number of individual items, if these are different), as a string
1320
+ * (e.g., "6", rather than 6).
1321
+ */
1322
+ recipeYield?: string;
1323
+ /**
1324
+ * An array of strings representing the tools required in the recipe.
1325
+ */
1326
+ tools?: string[];
1327
+ /**
1328
+ * An array of keywords describing the recipe.
1329
+ */
1330
+ keywords?: string[];
1331
+ /**
1332
+ * A string describing the cuisine type (e.g., "American" or "Spanish").
1333
+ */
1334
+ recipeCuisine?: string;
1335
+ /**
1336
+ * The category of the recipe.
1337
+ */
1338
+ recipeCategory?: 'Appetizer' | 'Breakfast' | 'Brunch' | 'Dessert' | 'Dinner' | 'Drink' | 'Lunch' | 'Main course' | 'Sauce' | 'Side dish' | 'Snack' | 'Starter' | (string & Record<never, never>);
1339
+ /**
1340
+ * A RestrictedDiet node, with a value (or array of values
1341
+ */
1342
+ suitableForDiet?: Partial<'DiabeticDiet' | 'GlutenFreeDiet' | 'HalalDiet' | 'HinduDiet' | 'KosherDiet' | 'LowCalorieDiet' | 'LowFatDiet' | 'LowLactoseDiet' | 'LowSaltDiet' | 'VeganDiet' | 'VegetarianDiet'>[];
1343
+ /**
1344
+ * A reference to a video representing the recipe instructions, by ID.
1345
+ */
1346
+ video?: NodeRelations<VideoObject | IdReference>;
1347
+ /**
1348
+ * The language code for the guide; e.g., en-GB.
1349
+ */
1350
+ inLanguage?: string;
1351
+ /**
1352
+ * A reference-by-ID to the author of the article.
1353
+ */
1354
+ author?: NodeRelation<Person>;
1355
+ /**
1356
+ * The date when the recipe was added, in ISO 8601 format.
1357
+ */
1358
+ datePublished?: ResolvableDate;
1359
+ }
1360
+ interface Recipe extends RecipeSimple {
1361
+ }
1362
+ interface NutritionInformation extends Thing {
1363
+ '@type': 'NutritionInformation';
1364
+ /**
1365
+ * A calorie count as a string (e.g., "270 calories").
1366
+ */
1367
+ calories: string;
1368
+ }
1369
+ declare const RecipeId = "#recipe";
1370
+ declare const recipeResolver: SchemaOrgNodeDefinition<Recipe>;
1371
+
1372
+ type ApplicationCategory = 'GameApplication' | 'SocialNetworkingApplication' | 'TravelApplication' | 'ShoppingApplication' | 'SportsApplication' | 'LifestyleApplication' | 'BusinessApplication' | 'DesignApplication' | 'DeveloperApplication' | 'DriverApplication' | 'EducationalApplication' | 'HealthApplication' | 'FinanceApplication' | 'SecurityApplication' | 'BrowserApplication' | 'CommunicationApplication' | 'DesktopEnhancementApplication' | 'EntertainmentApplication' | 'MultimediaApplication' | 'HomeApplication' | 'UtilitiesApplication' | 'ReferenceApplication';
1373
+ interface SoftwareAppSimple extends Thing {
1374
+ '@type'?: Arrayable<'SoftwareApplication' | 'MobileApplication' | 'VideoGame' | 'WebApplication'>;
1375
+ /**
1376
+ * The name of the app.
1377
+ */
1378
+ name?: string;
1379
+ /**
1380
+ * An offer to sell the app.
1381
+ * For developers, offers can indicate the marketplaces that carry the application.
1382
+ * For marketplaces, use offers to indicate the price of the app for a specific app instance.
1383
+ */
1384
+ offers: NodeRelations<Offer>;
1385
+ /**
1386
+ * The average review score of the app.
1387
+ */
1388
+ aggregateRating?: NodeRelation<AggregateRating>;
1389
+ /**
1390
+ * A single review of the app.
1391
+ */
1392
+ review?: NodeRelation<Review>;
1393
+ /**
1394
+ * The type of app (for example, BusinessApplication or GameApplication). The value must be a supported app type.
1395
+ */
1396
+ applicationCategory?: ApplicationCategory;
1397
+ /**
1398
+ * The operating system(s) required to use the app (for example, Windows 7, OSX 10.6, Android 1.6)
1399
+ */
1400
+ operatingSystem?: string;
1401
+ }
1402
+ interface SoftwareApp extends SoftwareAppSimple {
1403
+ }
1404
+ declare const softwareAppResolver: SchemaOrgNodeDefinition<SoftwareApp>;
1405
+
1406
+ type Arrayable<T> = T | Array<T>;
1407
+ type NodeRelation<T> = T | IdReference;
1408
+ type NodeRelations<T> = Arrayable<NodeRelation<T>>;
1409
+ type Identity = Person | Organization;
1410
+ type ResolvableDate = string | Date;
1411
+ type OptionalSchemaOrgPrefix<T extends string> = T | `https://schema.org/${T}`;
1412
+ interface ResolvedMeta {
1413
+ host: string;
1414
+ url: string;
1415
+ currency?: string;
1416
+ inLanguage?: string;
1417
+ image?: string;
1418
+ title?: string;
1419
+ description?: string;
1420
+ datePublished?: string;
1421
+ dateModified?: string;
1422
+ trailingSlash?: boolean;
1423
+ }
1424
+ interface MetaInput {
1425
+ /**
1426
+ * Whether to inject the scripts at the end of the body or in the head.
1427
+ */
1428
+ tagPosition?: 'body' | 'head';
1429
+ trailingSlash?: boolean;
1430
+ host: string;
1431
+ url?: string;
1432
+ path?: string;
1433
+ currency?: string;
1434
+ image?: string;
1435
+ inLanguage?: string;
1436
+ title?: string;
1437
+ description?: string;
1438
+ datePublished?: Date | string;
1439
+ dateModified?: Date | string;
1440
+ /**
1441
+ * @deprecated use tagPosition
1442
+ */
1443
+ position?: 'body' | 'head';
1444
+ /**
1445
+ * @deprecated use `language`
1446
+ */
1447
+ defaultLanguage?: string;
1448
+ /**
1449
+ * @deprecated use `currency`
1450
+ */
1451
+ defaultCurrency?: string;
1452
+ /**
1453
+ * @deprecated use `host`
1454
+ */
1455
+ canonicalHost?: string;
1456
+ /**
1457
+ * @deprecated use `url` or `path`
1458
+ */
1459
+ canonicalUrl?: string;
1460
+ /**
1461
+ * @deprecated use root keys.
1462
+ */
1463
+ meta?: MetaInput;
1464
+ }
1465
+ interface UserConfig extends MetaInput {
1466
+ }
1467
+ interface SchemaOrgNodeDefinition<ResolvedInput> {
1468
+ alias?: string;
1469
+ cast?: (node: any, ctx: SchemaOrgGraph) => ResolvedInput;
1470
+ idPrefix?: 'host' | 'url' | ['host' | 'url', string];
1471
+ inheritMeta?: (keyof ResolvedMeta | {
1472
+ key: keyof ResolvedInput;
1473
+ meta: keyof ResolvedMeta;
1474
+ })[];
1475
+ defaults?: Partial<ResolvedInput> | ((ctx: SchemaOrgGraph) => Partial<any>);
1476
+ required?: (keyof ResolvedInput)[];
1477
+ resolve?: (node: ResolvedInput, ctx: SchemaOrgGraph) => ResolvedInput;
1478
+ resolveRootNode?: (node: ResolvedInput, ctx: SchemaOrgGraph) => void;
1479
+ }
1480
+ interface Thing {
1481
+ '@type'?: Arrayable<string>;
1482
+ '@id'?: Id;
1483
+ /**
1484
+ * A reference-by-ID to the WebPage node.
1485
+ */
1486
+ mainEntityOfPage?: Arrayable<IdReference>;
1487
+ /**
1488
+ * A reference-by-ID to the WebPage node.
1489
+ */
1490
+ mainEntity?: Arrayable<IdReference>;
1491
+ /**
1492
+ * An image object or referenced by ID.
1493
+ * - Must be at least 696 pixels wide.
1494
+ * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
1495
+ */
1496
+ image?: NodeRelations<ImageObject | string>;
1497
+ /**
1498
+ * Allow any arbitrary keys
1499
+ */
1500
+ [key: string]: any;
1501
+ }
1502
+ interface SchemaOrgNode extends Thing {
1503
+ _resolver?: SchemaOrgNodeDefinition<any>;
1504
+ }
1505
+ type WithResolver<T> = T & {
1506
+ _resolver?: SchemaOrgNodeDefinition<T>;
1507
+ };
1508
+ interface IdReference {
1509
+ /** IRI identifying the canonical address of this object. */
1510
+ '@id': string;
1511
+ }
1512
+ type Id = `#${string}` | `https://${string}#${string}`;
1513
+
1514
+ interface SchemaOrgGraph {
1515
+ nodes: SchemaOrgNode[];
1516
+ meta: ResolvedMeta;
1517
+ push: <T extends Arrayable<Thing>>(node: T) => void;
1518
+ resolveGraph: (meta: MetaInput) => SchemaOrgNode[];
1519
+ find: <T extends Thing>(id: Id | string) => T | null;
1520
+ }
1521
+ declare function createSchemaOrgGraph(): SchemaOrgGraph;
1522
+
1523
+ declare function SchemaOrgUnheadPlugin(config: MetaInput, meta: () => Record<string, any>): any;
1524
+
1525
+ export { bookResolver as $, Arrayable as A, BreadcrumbList as B, Comment$1 as C, aggregateOfferResolver as D, Event as E, AggregateRatingSimple as F, aggregateRatingResolver as G, HowTo as H, ImageObject as I, JobPosting as J, ArticleSimple as K, LocalBusiness as L, MetaInput as M, PrimaryArticleId as N, Offer as O, PostalAddress as P, Question as Q, ResolvedMeta as R, SchemaOrgNodeDefinition as S, Thing as T, articleResolver as U, VirtualLocation as V, WebPage as W, BookSimple as X, BookEditionSimple as Y, bookEditionResolver as Z, PrimaryBookId as _, SchemaOrgNode as a, webPageResolver as a$, BreadcrumbSimple as a0, PrimaryBreadcrumbId as a1, breadcrumbResolver as a2, CommentSimple as a3, commentResolver as a4, CourseSimple as a5, courseResolver as a6, EventSimple as a7, PrimaryEventId as a8, eventResolver as a9, openingHoursResolver as aA, OrganizationSimple as aB, organizationResolver as aC, PersonSimple as aD, personResolver as aE, PostalAddressSimple as aF, addressResolver as aG, ProductSimple as aH, ProductId as aI, productResolver as aJ, QuestionSimple as aK, questionResolver as aL, RatingSimple as aM, Rating as aN, ratingResolver as aO, RecipeSimple as aP, NutritionInformation as aQ, RecipeId as aR, recipeResolver as aS, SoftwareAppSimple as aT, softwareAppResolver as aU, ReviewSimple as aV, reviewResolver as aW, VideoSimple as aX, videoResolver as aY, WebPageSimple as aZ, PrimaryWebPageId as a_, VirtualLocationSimple as aa, virtualLocationResolver as ab, PlaceSimple as ac, placeResolver as ad, HowToSimple as ae, HowToId as af, howToResolver as ag, HowToStepSimple as ah, howToStepResolver as ai, HowToDirection as aj, howToStepDirectionResolver as ak, ItemListSimple as al, itemListResolver as am, ImageSimple as an, imageResolver as ao, JobPostingSimple as ap, jobPostingResolver as aq, ListItemSimple as ar, listItemResolver as as, LocalBusinessSimple as at, localBusinessResolver as au, MovieSimple as av, movieResolver as aw, OfferSimple as ax, offerResolver as ay, OpeningHoursSimple as az, SchemaOrgGraph as b, ReadActionInput as b0, readActionResolver as b1, WebSiteSimple as b2, PrimaryWebSiteId as b3, webSiteResolver as b4, SearchActionInput as b5, searchActionResolver as b6, SchemaOrgUnheadPlugin as b7, NodeRelation as b8, NodeRelations as b9, Identity as ba, ResolvableDate as bb, OptionalSchemaOrgPrefix as bc, UserConfig as bd, WithResolver as be, IdReference as bf, Id as bg, AggregateOffer as c, AggregateRating as d, Article as e, Place as f, HowToStep as g, OpeningHoursSpecification as h, Organization as i, Person as j, Product as k, Recipe as l, Review as m, VideoObject as n, WebSite as o, Book as p, Course as q, ItemList as r, ListItem as s, Movie as t, SearchAction as u, ReadAction as v, SoftwareApp as w, BookEdition as x, createSchemaOrgGraph as y, AggregateOfferSimple as z };