UNPKG

next-seo

Version:

SEO plugin for Next.js projects

1,309 lines (1,293 loc) 103 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; interface JsonLdScriptProps<T = Record<string, unknown>> { data: T; id?: string; scriptKey: string; } declare function JsonLdScript<T = Record<string, unknown>>({ data, id, scriptKey, }: JsonLdScriptProps<T>): React.JSX.Element | null; interface Thing { name?: string; description?: string; url?: string; image?: string; } interface ImageObject { "@type": "ImageObject"; url: string; width?: number; height?: number; caption?: string; } interface Person extends Thing { "@type": "Person"; familyName?: string; givenName?: string; additionalName?: string; alternateName?: string; identifier?: string; interactionStatistic?: InteractionCounter | InteractionCounter[] | Omit<InteractionCounter, "@type"> | Omit<InteractionCounter, "@type">[]; agentInteractionStatistic?: InteractionCounter | Omit<InteractionCounter, "@type">; sameAs?: string | string[]; } interface Organization extends Thing { "@type": "Organization"; logo?: string | ImageObject | Omit<ImageObject, "@type">; sameAs?: string | string[]; address?: string | PostalAddress | Omit<PostalAddress, "@type"> | (string | PostalAddress | Omit<PostalAddress, "@type">)[]; contactPoint?: ContactPoint | Omit<ContactPoint, "@type"> | ContactPoint[] | Omit<ContactPoint, "@type">[]; telephone?: string; email?: string; alternateName?: string; foundingDate?: string; legalName?: string; taxID?: string; vatID?: string; duns?: string; leiCode?: string; naics?: string; globalLocationNumber?: string; iso6523Code?: string; numberOfEmployees?: number | QuantitativeValue | Omit<QuantitativeValue, "@type">; review?: Review | Omit<Review, "@type"> | Review[] | Omit<Review, "@type">[]; aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">; identifier?: string; interactionStatistic?: InteractionCounter | InteractionCounter[] | Omit<InteractionCounter, "@type"> | Omit<InteractionCounter, "@type">[]; agentInteractionStatistic?: InteractionCounter | Omit<InteractionCounter, "@type">; } interface PostalAddress { "@type": "PostalAddress"; streetAddress?: string; addressLocality?: string; addressRegion?: string; postalCode?: string; addressCountry?: string; } interface Place$2 { "@type": "Place"; name?: string; address?: PostalAddress | Omit<PostalAddress, "@type">; } interface ContactPoint { "@type": "ContactPoint"; contactType?: string; telephone?: string; email?: string; } interface QuantitativeValue { "@type": "QuantitativeValue"; value?: number | string; minValue?: number; maxValue?: number; unitText?: string; unitCode?: string; valueReference?: QuantitativeValue | Omit<QuantitativeValue, "@type">; } interface SimpleMonetaryAmount { "@type": "MonetaryAmount"; value: number | string; currency: string; } interface MerchantReturnPolicySeasonalOverride { "@type": "MerchantReturnPolicySeasonalOverride"; startDate?: string; endDate?: string; returnPolicyCategory?: string; merchantReturnDays?: number | string; } interface MerchantReturnPolicy { "@type": "MerchantReturnPolicy"; applicableCountry?: string | string[]; returnPolicyCountry?: string | string[]; returnPolicyCategory?: string; merchantReturnDays?: number; returnMethod?: string | string[]; returnFees?: string; returnShippingFeesAmount?: SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; refundType?: string | string[]; restockingFee?: number | SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; returnLabelSource?: string; itemCondition?: string | string[]; customerRemorseReturnFees?: string; customerRemorseReturnShippingFeesAmount?: SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; customerRemorseReturnLabelSource?: string; itemDefectReturnFees?: string; itemDefectReturnShippingFeesAmount?: SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; itemDefectReturnLabelSource?: string; returnPolicySeasonalOverride?: MerchantReturnPolicySeasonalOverride | Omit<MerchantReturnPolicySeasonalOverride, "@type"> | MerchantReturnPolicySeasonalOverride[] | Omit<MerchantReturnPolicySeasonalOverride, "@type">[]; merchantReturnLink?: string; } type PriceTypeEnumeration = "https://schema.org/StrikethroughPrice" | "https://schema.org/ListPrice" | "StrikethroughPrice" | "ListPrice"; interface CreditCard { "@type": "CreditCard"; name: string; } interface UnitPriceSpecification { "@type": "UnitPriceSpecification"; price?: number | string; priceCurrency?: string; billingDuration?: number; billingIncrement?: number; unitCode?: string; priceType?: PriceTypeEnumeration; validForMemberTier?: MemberProgramTier | Omit<MemberProgramTier, "@type"> | (MemberProgramTier | Omit<MemberProgramTier, "@type">)[]; membershipPointsEarned?: number; referenceQuantity?: QuantitativeValue | Omit<QuantitativeValue, "@type">; } type TierRequirement = CreditCard | SimpleMonetaryAmount | UnitPriceSpecification | string | Omit<CreditCard, "@type"> | Omit<SimpleMonetaryAmount, "@type"> | Omit<UnitPriceSpecification, "@type">; type TierBenefit = "TierBenefitLoyaltyPoints" | "TierBenefitLoyaltyPrice" | "https://schema.org/TierBenefitLoyaltyPoints" | "https://schema.org/TierBenefitLoyaltyPrice"; interface MemberProgramTier { "@type": "MemberProgramTier"; "@id"?: string; name: string; url?: string; hasTierBenefit: TierBenefit | TierBenefit[]; hasTierRequirement?: TierRequirement; membershipPointsEarned?: number | QuantitativeValue | Omit<QuantitativeValue, "@type">; } interface MemberProgram { "@type": "MemberProgram"; name: string; description: string; url?: string; hasTiers: MemberProgramTier | Omit<MemberProgramTier, "@type"> | (MemberProgramTier | Omit<MemberProgramTier, "@type">)[]; } type Author = string | Person | Organization | Omit<Person, "@type"> | Omit<Organization, "@type">; interface GeoCoordinates { "@type": "GeoCoordinates"; latitude: number; longitude: number; } interface Rating { "@type": "Rating"; ratingValue: number | string; bestRating?: number | string; worstRating?: number | string; } interface Review { "@type": "Review"; reviewRating?: Rating | Omit<Rating, "@type">; author?: Author; reviewBody?: string; datePublished?: string; } interface AggregateRating { "@type": "AggregateRating"; ratingValue: number; ratingCount?: number; reviewCount?: number; bestRating?: number; worstRating?: number; } interface OpeningHoursSpecification { "@type": "OpeningHoursSpecification"; dayOfWeek: string | string[]; opens: string; closes: string; validFrom?: string; validThrough?: string; } interface VideoObject$1 { "@type": "VideoObject"; name: string; description: string; thumbnailUrl: string | string[]; contentUrl?: string; embedUrl?: string; uploadDate: string; duration?: string; expires?: string; } interface InteractionCounter { "@type": "InteractionCounter"; interactionType: string; userInteractionCount: number; } interface Brand { "@type": "Brand"; name?: string; } interface BedDetails { "@type": "BedDetails"; numberOfBeds?: number; typeOfBed?: string; } interface LocationFeatureSpecification { "@type": "LocationFeatureSpecification"; name: string; value: boolean | string; } interface Accommodation { "@type": "Accommodation"; additionalType?: string; bed?: BedDetails | Omit<BedDetails, "@type"> | (BedDetails | Omit<BedDetails, "@type">)[]; occupancy?: QuantitativeValue | Omit<QuantitativeValue, "@type">; amenityFeature?: LocationFeatureSpecification | Omit<LocationFeatureSpecification, "@type"> | (LocationFeatureSpecification | Omit<LocationFeatureSpecification, "@type">)[]; floorSize?: QuantitativeValue | Omit<QuantitativeValue, "@type">; numberOfBathroomsTotal?: number; numberOfBedrooms?: number; numberOfRooms?: number; petsAllowed?: boolean; smokingAllowed?: boolean; } interface Certification { "@type": "Certification"; issuedBy: Organization | Omit<Organization, "@type"> | { "@type"?: "Organization"; name: string; }; name: string; url?: string; certificationIdentification?: string; certificationRating?: Rating | Omit<Rating, "@type">; } interface PeopleAudience { "@type": "PeopleAudience"; suggestedGender?: "male" | "female" | "unisex" | "https://schema.org/Male" | "https://schema.org/Female"; suggestedMinAge?: number; suggestedMaxAge?: number; suggestedAge?: QuantitativeValue | Omit<QuantitativeValue, "@type">; } interface SizeSpecification { "@type": "SizeSpecification"; name?: string; sizeGroup?: "WearableSizeGroupRegular" | "WearableSizeGroupPetite" | "WearableSizeGroupPlus" | "WearableSizeGroupTall" | "WearableSizeGroupBig" | "WearableSizeGroupMaternity" | "https://schema.org/WearableSizeGroupRegular" | "https://schema.org/WearableSizeGroupPetite" | "https://schema.org/WearableSizeGroupPlus" | "https://schema.org/WearableSizeGroupTall" | "https://schema.org/WearableSizeGroupBig" | "https://schema.org/WearableSizeGroupMaternity" | "regular" | "petite" | "plus" | "tall" | "big" | "maternity"; sizeSystem?: "WearableSizeSystemAU" | "WearableSizeSystemBR" | "WearableSizeSystemCN" | "WearableSizeSystemDE" | "WearableSizeSystemEurope" | "WearableSizeSystemFR" | "WearableSizeSystemIT" | "WearableSizeSystemJP" | "WearableSizeSystemMX" | "WearableSizeSystemUK" | "WearableSizeSystemUS" | "https://schema.org/WearableSizeSystemAU" | "https://schema.org/WearableSizeSystemBR" | "https://schema.org/WearableSizeSystemCN" | "https://schema.org/WearableSizeSystemDE" | "https://schema.org/WearableSizeSystemEurope" | "https://schema.org/WearableSizeSystemFR" | "https://schema.org/WearableSizeSystemIT" | "https://schema.org/WearableSizeSystemJP" | "https://schema.org/WearableSizeSystemMX" | "https://schema.org/WearableSizeSystemUK" | "https://schema.org/WearableSizeSystemUS" | "AU" | "BR" | "CN" | "DE" | "EU" | "FR" | "IT" | "JP" | "MX" | "UK" | "US"; } interface ThreeDModel { "@type": "3DModel"; encoding?: { "@type"?: "MediaObject"; contentUrl: string; }; } interface DefinedRegion { "@type": "DefinedRegion"; addressCountry: string; addressRegion?: string | string[]; postalCode?: string | string[]; } interface ShippingDeliveryTime { "@type": "ShippingDeliveryTime"; handlingTime?: QuantitativeValue | Omit<QuantitativeValue, "@type">; transitTime?: QuantitativeValue | Omit<QuantitativeValue, "@type">; } interface OfferShippingDetails { "@type": "OfferShippingDetails"; shippingRate?: SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; shippingDestination?: DefinedRegion | Omit<DefinedRegion, "@type"> | (DefinedRegion | Omit<DefinedRegion, "@type">)[]; deliveryTime?: ShippingDeliveryTime | Omit<ShippingDeliveryTime, "@type">; doesNotShip?: boolean; } type Director = string | Person | Omit<Person, "@type">; interface Movie { "@type": "Movie"; name: string; image: string | ImageObject | (string | ImageObject)[]; url?: string; dateCreated?: string; director?: Director; review?: Review | Omit<Review, "@type">; aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">; } type MovieListItem = Omit<Movie, "@type" | "image"> & { image: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; }; type SummaryPageItem$2 = string | { url: string; position?: number; }; type MovieCarouselJsonLdProps = { scriptId?: string; scriptKey?: string; } & ({ urls: SummaryPageItem$2[]; } | { movies: MovieListItem[]; }); type Provider = string | Organization | Omit<Organization, "@type">; interface Course { "@type": "Course"; name: string; description: string; url?: string; provider?: Organization; } type CourseListItem = Omit<Course, "@type" | "provider"> & { provider?: Provider; }; type SummaryPageItem$1 = string | { url: string; position?: number; }; interface CourseJsonLdBaseProps { scriptId?: string; scriptKey?: string; } interface SingleCourseProps extends CourseJsonLdBaseProps { type?: "single"; name: string; description: string; url?: string; provider?: Provider; } interface CourseListSummaryProps extends CourseJsonLdBaseProps { type: "list"; urls: SummaryPageItem$1[]; } interface CourseListAllInOneProps extends CourseJsonLdBaseProps { type: "list"; courses: CourseListItem[]; } type CourseJsonLdProps = SingleCourseProps | CourseListSummaryProps | CourseListAllInOneProps; interface BreadcrumbListItem { name: string; item?: string | { "@id": string; }; } interface ListItem { "@type": "ListItem"; position: number; name?: string; item?: string | { "@id": string; }; } type BreadcrumbJsonLdProps = { items: BreadcrumbListItem[]; scriptId?: string; scriptKey?: string; } | { multipleTrails: BreadcrumbListItem[][]; scriptId?: string; scriptKey?: string; }; interface Place$1 { "@type": "Place"; name?: string; address: PostalAddress | Omit<PostalAddress, "@type">; } interface Offer { "@type": "Offer"; url?: string; price?: number; priceCurrency?: string; availability?: string; validFrom?: string; } interface PerformingGroup extends Thing { "@type": "PerformingGroup"; } type Performer = string | Person | PerformingGroup | Omit<Person, "@type"> | Omit<PerformingGroup, "@type">; type Organizer = string | Person | Organization | Omit<Person, "@type"> | Omit<Organization, "@type">; type EventStatusType = "https://schema.org/EventScheduled" | "https://schema.org/EventCancelled" | "https://schema.org/EventPostponed" | "https://schema.org/EventRescheduled"; interface EventBase { name: string; startDate: string; location: string | Place$1 | Omit<Place$1, "@type">; endDate?: string; description?: string; eventStatus?: EventStatusType; image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; offers?: Offer | Omit<Offer, "@type"> | Offer[] | Omit<Offer, "@type">[]; performer?: Performer | Performer[]; organizer?: Organizer; previousStartDate?: string | string[]; url?: string; } interface Event extends EventBase { "@type": "Event"; } type EventJsonLdProps = Omit<Event, "@type"> & { scriptId?: string; scriptKey?: string; }; interface NutritionInformation { "@type": "NutritionInformation"; calories?: string; carbohydrateContent?: string; proteinContent?: string; fatContent?: string; saturatedFatContent?: string; unsaturatedFatContent?: string; transFatContent?: string; cholesterolContent?: string; sodiumContent?: string; fiberContent?: string; sugarContent?: string; servingSize?: string; } interface HowToStep$1 { "@type": "HowToStep"; name?: string; text: string; url?: string; image?: string | ImageObject | Omit<ImageObject, "@type">; } interface HowToSection$1 { "@type": "HowToSection"; name: string; itemListElement: (HowToStep$1 | Omit<HowToStep$1, "@type">)[]; } type Instruction = string | HowToStep$1 | HowToSection$1 | Omit<HowToStep$1, "@type"> | Omit<HowToSection$1, "@type">; type RecipeImage = string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; interface Recipe { "@type": "Recipe"; name: string; image: RecipeImage; description?: string; author?: Author; datePublished?: string; prepTime?: string; cookTime?: string; totalTime?: string; recipeYield?: string | number; recipeCategory?: string; recipeCuisine?: string; nutrition?: Omit<NutritionInformation, "@type"> & { "@type"?: "NutritionInformation"; }; recipeIngredient?: string[]; recipeInstructions?: Instruction | Instruction[]; aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">; video?: VideoObject$1 | Omit<VideoObject$1, "@type">; keywords?: string; url?: string; } type RecipeJsonLdProps = Omit<Recipe, "@type"> & { scriptId?: string; scriptKey?: string; }; interface GeoShape { "@type": "GeoShape"; box?: string; circle?: string; line?: string; polygon?: string; } interface PropertyValue$1 { "@type": "PropertyValue"; name?: string; value?: string; propertyID?: string; } interface CreativeWork$1 { "@type": "CreativeWork"; name?: string; url?: string; identifier?: string; } interface DatasetPlace { "@type": "Place"; name?: string; geo?: GeoCoordinates | GeoShape | Omit<GeoCoordinates, "@type"> | Omit<GeoShape, "@type">; } interface DataDownload { "@type": "DataDownload"; contentUrl: string; encodingFormat?: string; contentSize?: string; name?: string; description?: string; } interface DataCatalog { "@type": "DataCatalog"; name: string; description?: string; url?: string; hasPart?: Dataset | Dataset[]; } interface Dataset { "@type": "Dataset"; name: string; description: string; url?: string; sameAs?: string | string[]; identifier?: string | PropertyValue$1 | Omit<PropertyValue$1, "@type"> | (string | PropertyValue$1 | Omit<PropertyValue$1, "@type">)[]; keywords?: string | string[]; license?: string | CreativeWork$1 | Omit<CreativeWork$1, "@type">; isAccessibleForFree?: boolean; hasPart?: Dataset | Dataset[]; isPartOf?: string | Dataset; creator?: Author | Author[]; funder?: Author | Author[]; includedInDataCatalog?: DataCatalog | Omit<DataCatalog, "@type">; distribution?: DataDownload | Omit<DataDownload, "@type"> | (DataDownload | Omit<DataDownload, "@type">)[]; temporalCoverage?: string; spatialCoverage?: string | DatasetPlace | Omit<DatasetPlace, "@type">; alternateName?: string | string[]; citation?: string | CreativeWork$1 | Omit<CreativeWork$1, "@type"> | (string | CreativeWork$1 | Omit<CreativeWork$1, "@type">)[]; measurementTechnique?: string | string[]; variableMeasured?: string | PropertyValue$1 | Omit<PropertyValue$1, "@type"> | (string | PropertyValue$1 | Omit<PropertyValue$1, "@type">)[]; version?: string | number; } type DatasetJsonLdProps = Omit<Dataset, "@type"> & { scriptId?: string; scriptKey?: string; }; interface Country { "@type": "Country"; name: string; } interface State { "@type": "State"; name: string; } type AdministrativeArea = Country | State; interface Place { "@type": "Place"; address?: string | PostalAddress | Omit<PostalAddress, "@type">; } interface PropertyValue { "@type": "PropertyValue"; name?: string; value?: string; } interface MonetaryAmount { "@type": "MonetaryAmount"; currency: string; value: QuantitativeValue | Omit<QuantitativeValue, "@type">; } interface EducationalOccupationalCredential { "@type": "EducationalOccupationalCredential"; credentialCategory?: string; } interface OccupationalExperienceRequirements { "@type": "OccupationalExperienceRequirements"; monthsOfExperience?: number; } type EmploymentType = "FULL_TIME" | "PART_TIME" | "CONTRACTOR" | "TEMPORARY" | "INTERN" | "VOLUNTEER" | "PER_DIEM" | "OTHER"; type JobLocationType = "TELECOMMUTE"; interface JobPostingBase { title: string; description: string; datePosted: string; hiringOrganization: string | Organization | Omit<Organization, "@type">; jobLocation?: string | Place | Omit<Place, "@type"> | (string | Place | Omit<Place, "@type">)[]; url?: string; validThrough?: string; employmentType?: EmploymentType | EmploymentType[]; identifier?: string | PropertyValue | Omit<PropertyValue, "@type">; baseSalary?: MonetaryAmount | Omit<MonetaryAmount, "@type">; applicantLocationRequirements?: Omit<Country, "@type"> | Omit<State, "@type"> | Country | State | (Omit<Country, "@type"> | Omit<State, "@type"> | Country | State)[]; jobLocationType?: JobLocationType; directApply?: boolean; educationRequirements?: string | EducationalOccupationalCredential | Omit<EducationalOccupationalCredential, "@type"> | (string | EducationalOccupationalCredential | Omit<EducationalOccupationalCredential, "@type">)[]; experienceRequirements?: string | OccupationalExperienceRequirements | Omit<OccupationalExperienceRequirements, "@type">; experienceInPlaceOfEducation?: boolean; } type JobPostingJsonLdProps = Omit<JobPostingBase, "@type"> & { scriptId?: string; scriptKey?: string; }; interface WebPage$1 { "@type": "WebPage"; url: string; name?: string; description?: string; } interface CreativeWork { "@type": "CreativeWork"; name?: string; url?: string; } type SharedContent = string | WebPage$1 | ImageObject | VideoObject$1 | Omit<WebPage$1, "@type"> | Omit<ImageObject, "@type"> | Omit<VideoObject$1, "@type">; interface Comment { "@type": "Comment"; author: Author; datePublished: string; text?: string; image?: string | ImageObject | Omit<ImageObject, "@type">; video?: VideoObject$1 | Omit<VideoObject$1, "@type">; comment?: (Comment | Omit<Comment, "@type">)[]; creativeWorkStatus?: string; dateModified?: string; interactionStatistic?: InteractionCounter | Omit<InteractionCounter, "@type"> | (InteractionCounter | Omit<InteractionCounter, "@type">)[]; sharedContent?: SharedContent; url?: string; } interface DiscussionForumPostingBase { headline?: string; text?: string; image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; video?: VideoObject$1 | Omit<VideoObject$1, "@type">; author: Author | Author[]; datePublished: string; dateModified?: string; url?: string; comment?: (Comment | Omit<Comment, "@type">)[]; creativeWorkStatus?: string; interactionStatistic?: InteractionCounter | Omit<InteractionCounter, "@type"> | (InteractionCounter | Omit<InteractionCounter, "@type">)[]; isPartOf?: string | CreativeWork | Omit<CreativeWork, "@type">; sharedContent?: SharedContent; } interface DiscussionForumPosting extends DiscussionForumPostingBase { "@type": "DiscussionForumPosting"; } interface SocialMediaPosting extends DiscussionForumPostingBase { "@type": "SocialMediaPosting"; } type DiscussionForumPostingJsonLdProps = (Omit<DiscussionForumPosting, "@type"> | Omit<SocialMediaPosting, "@type">) & { type?: "DiscussionForumPosting" | "SocialMediaPosting"; scriptId?: string; scriptKey?: string; }; interface ClaimReviewRating extends Rating { alternateName: string; name?: string; } interface ClaimCreativeWork { "@type": string; "@id"?: string; url?: string; headline?: string; datePublished?: string; author?: Author; image?: string; publisher?: Organization | Omit<Organization, "@type">; } interface Claim { "@type": "Claim"; appearance?: string | ClaimCreativeWork | Omit<ClaimCreativeWork, "@type"> | (string | ClaimCreativeWork | Omit<ClaimCreativeWork, "@type">)[]; author?: Author; datePublished?: string; firstAppearance?: string | ClaimCreativeWork | Omit<ClaimCreativeWork, "@type">; } interface ClaimReview { "@type": "ClaimReview"; claimReviewed: string; reviewRating: ClaimReviewRating | Omit<ClaimReviewRating, "@type">; url: string; author?: Author; itemReviewed?: Claim | Omit<Claim, "@type">; } type ClaimReviewJsonLdProps = Omit<ClaimReview, "@type"> & { scriptId?: string; scriptKey?: string; }; type Duration = string; type Thumbnail = string | ImageObject | Omit<ImageObject, "@type">; type Region = string | string[]; interface BroadcastEvent { "@type": "BroadcastEvent"; name?: string; isLiveBroadcast: boolean; startDate: string; endDate?: string; } interface Clip { "@type": "Clip"; name: string; startOffset: number; endOffset?: number; url: string; } interface PotentialAction { "@type": "SeekToAction"; target: string; "startOffset-input": string; } interface VideoObjectBase { name: string; description: string; thumbnailUrl: Thumbnail | Thumbnail[]; uploadDate: string; contentUrl?: string; embedUrl?: string; duration?: Duration; expires?: string; interactionStatistic?: InteractionCounter | Omit<InteractionCounter, "@type"> | (InteractionCounter | Omit<InteractionCounter, "@type">)[]; regionsAllowed?: Region; ineligibleRegion?: Region; publication?: BroadcastEvent | Omit<BroadcastEvent, "@type"> | (BroadcastEvent | Omit<BroadcastEvent, "@type">)[]; hasPart?: Clip | Omit<Clip, "@type"> | (Clip | Omit<Clip, "@type">)[]; potentialAction?: PotentialAction | Omit<PotentialAction, "@type">; author?: Author | Author[]; publisher?: Organization | Omit<Organization, "@type">; } interface VideoObject extends VideoObjectBase { "@type": "VideoObject"; } type VideoJsonLdProps = Omit<VideoObject, "@type"> & { type?: "VideoObject"; scriptId?: string; scriptKey?: string; }; interface WebPageElement { "@type": "WebPageElement"; isAccessibleForFree: boolean; cssSelector: string; } type Publisher$1 = string | Organization | Person | Omit<Organization, "@type"> | Omit<Person, "@type">; type CreativeWorkJsonLdProps = { headline?: string; name?: string; url?: string; author?: Author | Author[]; datePublished?: string; dateModified?: string; image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; publisher?: Publisher$1; description?: string; isAccessibleForFree?: boolean; hasPart?: WebPageElement | Omit<WebPageElement, "@type"> | (WebPageElement | Omit<WebPageElement, "@type">)[]; mainEntityOfPage?: string | { "@type": "WebPage"; "@id": string; } | { "@id": string; }; text?: string; provider?: Publisher$1; itemReviewed?: string | { name: string; "@type"?: string; }; reviewRating?: { "@type"?: "Rating"; ratingValue: number; bestRating?: number; worstRating?: number; }; type?: "CreativeWork" | "Article" | "NewsArticle" | "Blog" | "BlogPosting" | "Comment" | "Course" | "HowTo" | "Message" | "Review" | "WebPage"; scriptId?: string; scriptKey?: string; }; type ItemAvailability = "https://schema.org/BackOrder" | "https://schema.org/Discontinued" | "https://schema.org/InStock" | "https://schema.org/InStoreOnly" | "https://schema.org/LimitedAvailability" | "https://schema.org/OnlineOnly" | "https://schema.org/OutOfStock" | "https://schema.org/PreOrder" | "https://schema.org/PreSale" | "https://schema.org/SoldOut" | "BackOrder" | "Discontinued" | "InStock" | "InStoreOnly" | "LimitedAvailability" | "OnlineOnly" | "OutOfStock" | "PreOrder" | "PreSale" | "SoldOut"; interface PriceSpecification { "@type": "PriceSpecification"; price: number | string; priceCurrency?: string; minPrice?: number; maxPrice?: number; } interface ProductOffer { "@type": "Offer"; url?: string; price?: number | string; priceCurrency?: string; priceSpecification?: PriceSpecification | UnitPriceSpecification | Omit<PriceSpecification, "@type"> | Omit<UnitPriceSpecification, "@type"> | (PriceSpecification | UnitPriceSpecification | Omit<PriceSpecification, "@type"> | Omit<UnitPriceSpecification, "@type">)[]; availability?: ItemAvailability; availabilityStarts?: string; availabilityEnds?: string; priceValidUntil?: string; itemCondition?: "https://schema.org/NewCondition" | "https://schema.org/UsedCondition" | "https://schema.org/DamagedCondition" | "https://schema.org/RefurbishedCondition" | "NewCondition" | "UsedCondition" | "DamagedCondition" | "RefurbishedCondition"; seller?: string | Organization | Person | Omit<Organization, "@type"> | Omit<Person, "@type">; shippingDetails?: OfferShippingDetails | Omit<OfferShippingDetails, "@type"> | (OfferShippingDetails | Omit<OfferShippingDetails, "@type">)[]; hasMerchantReturnPolicy?: MerchantReturnPolicy | Omit<MerchantReturnPolicy, "@type"> | MerchantReturnPolicy[] | Omit<MerchantReturnPolicy, "@type">[]; } interface AggregateOffer { "@type": "AggregateOffer"; lowPrice: number | string; priceCurrency: string; highPrice?: number | string; offerCount?: number; offers?: ProductOffer[] | Omit<ProductOffer, "@type">[]; } interface ProductListItem { "@type": "ListItem"; position?: number; name: string; } interface ProductItemList { "@type": "ItemList"; itemListElement: (ProductListItem | Omit<ProductListItem, "@type">)[]; } interface ProductReview extends Omit<Review, "@type"> { "@type": "Review"; name?: string; positiveNotes?: ProductItemList | Omit<ProductItemList, "@type">; negativeNotes?: ProductItemList | Omit<ProductItemList, "@type">; } interface ProductBase { name: string; description?: string; image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; sku?: string; mpn?: string; gtin?: string; gtin8?: string; gtin12?: string; gtin13?: string; gtin14?: string; brand?: string | Brand | Omit<Brand, "@type">; review?: ProductReview | Omit<ProductReview, "@type"> | (ProductReview | Omit<ProductReview, "@type">)[]; aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">; offers?: ProductOffer | AggregateOffer | Omit<ProductOffer, "@type"> | Omit<AggregateOffer, "@type"> | (ProductOffer | Omit<ProductOffer, "@type">)[]; category?: string; color?: string; material?: string; model?: string; productID?: string; url?: string; weight?: string | { "@type"?: "QuantitativeValue"; value?: number; unitCode?: string; unitText?: string; }; width?: string | { "@type"?: "QuantitativeValue"; value?: number; unitCode?: string; unitText?: string; }; height?: string | { "@type"?: "QuantitativeValue"; value?: number; unitCode?: string; unitText?: string; }; depth?: string | { "@type"?: "QuantitativeValue"; value?: number; unitCode?: string; unitText?: string; }; additionalProperty?: { "@type": "PropertyValue"; name: string; value: string | number; }[]; manufacturer?: string | Organization | Person | Omit<Organization, "@type"> | Omit<Person, "@type">; releaseDate?: string; productionDate?: string; purchaseDate?: string; expirationDate?: string; award?: string | string[]; hasCertification?: Certification | Omit<Certification, "@type"> | (Certification | Omit<Certification, "@type">)[]; audience?: PeopleAudience | Omit<PeopleAudience, "@type">; size?: string | SizeSpecification | Omit<SizeSpecification, "@type">; pattern?: string; isbn?: string; subjectOf?: ThreeDModel | Omit<ThreeDModel, "@type">; isVariantOf?: { "@id": string; } | ProductGroup | Omit<ProductGroup, "@type">; inProductGroupWithID?: string; } interface Product extends ProductBase { "@type": "Product" | ["Product", "Car"]; } type VariesBy = "https://schema.org/color" | "https://schema.org/size" | "https://schema.org/material" | "https://schema.org/pattern" | "https://schema.org/suggestedAge" | "https://schema.org/suggestedGender" | "color" | "size" | "material" | "pattern" | "suggestedAge" | "suggestedGender"; interface ProductGroup { "@type": "ProductGroup"; "@id"?: string; name: string; description?: string; url?: string; image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[]; brand?: string | Brand | Organization | Omit<Brand, "@type"> | Omit<Organization, "@type">; review?: ProductReview | Omit<ProductReview, "@type"> | (ProductReview | Omit<ProductReview, "@type">)[]; aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">; audience?: { "@type"?: "PeopleAudience"; suggestedGender?: "male" | "female" | "unisex"; suggestedAge?: { "@type"?: "QuantitativeValue"; minValue?: number; maxValue?: number; unitCode?: string; }; }; productGroupID: string; variesBy?: VariesBy | VariesBy[]; hasVariant?: (Product | Omit<Product, "@type"> | { url: string; } | { "@type": "Product"; url: string; })[]; pattern?: string; material?: string; category?: string; } type ProductJsonLdProps = ((Omit<Product, "@type"> & { type?: "Product"; isCar?: boolean; }) | (Omit<ProductGroup, "@type"> & { type?: "ProductGroup"; })) & { scriptId?: string; scriptKey?: string; }; /** * HowToSupply - A supply consumed when performing instructions * @see https://schema.org/HowToSupply */ interface HowToSupply { "@type": "HowToSupply"; name: string; image?: string | ImageObject | Omit<ImageObject, "@type">; requiredQuantity?: number | string | QuantitativeValue | Omit<QuantitativeValue, "@type">; estimatedCost?: string | SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; } /** * HowToTool - An object used (but not consumed) when performing instructions * @see https://schema.org/HowToTool */ interface HowToTool { "@type": "HowToTool"; name: string; image?: string | ImageObject | Omit<ImageObject, "@type">; requiredQuantity?: number | string | QuantitativeValue | Omit<QuantitativeValue, "@type">; } /** * HowToDirection - A direction or instruction within a HowToStep * @see https://schema.org/HowToDirection */ interface HowToDirection { "@type": "HowToDirection"; text: string; position?: number; beforeMedia?: string | ImageObject | Omit<ImageObject, "@type">; afterMedia?: string | ImageObject | Omit<ImageObject, "@type">; duringMedia?: string | ImageObject | Omit<ImageObject, "@type">; } /** * HowToTip - A tip or suggestion within a HowToStep * @see https://schema.org/HowToTip */ interface HowToTip { "@type": "HowToTip"; text: string; position?: number; } /** * HowToStep - A step in a HowTo guide * @see https://schema.org/HowToStep */ interface HowToStep { "@type": "HowToStep"; name?: string; text?: string; url?: string; image?: string | ImageObject | Omit<ImageObject, "@type">; position?: number; itemListElement?: (HowToDirection | HowToTip | Omit<HowToDirection, "@type"> | Omit<HowToTip, "@type">)[]; } /** * HowToSection - A section of steps within a HowTo guide * @see https://schema.org/HowToSection */ interface HowToSection { "@type": "HowToSection"; name: string; position?: number; itemListElement: (HowToStep | Omit<HowToStep, "@type">)[]; } /** * Step type union - represents all valid step types */ type Step = string | HowToStep | HowToSection | Omit<HowToStep, "@type"> | Omit<HowToSection, "@type">; /** * Supply type union - flexible input for supplies */ type Supply = string | HowToSupply | Omit<HowToSupply, "@type">; /** * Tool type union - flexible input for tools */ type Tool = string | HowToTool | Omit<HowToTool, "@type">; /** * EstimatedCost type union - flexible input for cost */ type EstimatedCost = string | SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type">; /** * Yield type union - flexible input for yield/result quantity */ type HowToYield = string | QuantitativeValue | Omit<QuantitativeValue, "@type">; /** * HowTo - Instructions that explain how to achieve a result * @see https://schema.org/HowTo */ interface HowTo { "@type": "HowTo"; name: string; description?: string; image?: string | ImageObject | Omit<ImageObject, "@type">; estimatedCost?: EstimatedCost; performTime?: string; prepTime?: string; totalTime?: string; step?: Step | Step[]; supply?: Supply | Supply[]; tool?: Tool | Tool[]; yield?: HowToYield; video?: VideoObject$1 | Omit<VideoObject$1, "@type">; } /** * Props for the HowToJsonLd component */ type HowToJsonLdProps = Omit<HowTo, "@type"> & { scriptId?: string; scriptKey?: string; }; declare function processSchemaType<T extends { "@type": string; }>(value: unknown, schemaType: string, stringHandler?: (str: string) => Omit<T, "@type">, numberHandler?: (num: number) => Omit<T, "@type">): T; /** * Processes author input into a Person or Organization schema type * @param author - String name, Person object, or Organization object * @returns Processed Person or Organization with @type * @example * processAuthor("John Doe") // { "@type": "Person", name: "John Doe" } * processAuthor({ name: "ACME Corp", logo: "logo.jpg" }) // { "@type": "Organization", ... } */ declare function processAuthor(author: Author): Person | Organization; /** * Processes image input into ImageObject schema type * @param image - URL string or ImageObject * @returns URL string or ImageObject with @type * @example * processImage("https://example.com/image.jpg") // "https://example.com/image.jpg" * processImage({ url: "image.jpg", width: 800 }) // { "@type": "ImageObject", ... } */ declare function processImage(image: string | ImageObject | Omit<ImageObject, "@type">): string | ImageObject; /** * Processes address input into PostalAddress schema type * @param address - String address or PostalAddress object * @returns PostalAddress with @type * @example * processAddress("123 Main St") // { "@type": "PostalAddress", streetAddress: "123 Main St" } */ declare function processAddress(address: string | PostalAddress | Omit<PostalAddress, "@type">): PostalAddress; /** * Processes contact point into ContactPoint schema type * @param contactPoint - ContactPoint object with or without @type * @returns ContactPoint with @type */ declare function processContactPoint(contactPoint: ContactPoint | Omit<ContactPoint, "@type">): ContactPoint; /** * Processes logo the same way as images * @param logo - URL string or ImageObject * @returns URL string or ImageObject with @type */ declare function processLogo(logo: string | ImageObject | Omit<ImageObject, "@type">): string | ImageObject; /** * Processes number of employees into QuantitativeValue schema type * @param numberOfEmployees - Number or QuantitativeValue object * @returns QuantitativeValue with @type */ declare function processNumberOfEmployees(numberOfEmployees: number | QuantitativeValue | Omit<QuantitativeValue, "@type">): QuantitativeValue; /** * Processes geographic coordinates into GeoCoordinates schema type * @param geo - GeoCoordinates object with or without @type * @returns GeoCoordinates with @type */ declare function processGeo(geo: GeoCoordinates | Omit<GeoCoordinates, "@type">): GeoCoordinates; /** * Processes opening hours into OpeningHoursSpecification schema type * @param hours - OpeningHoursSpecification object with or without @type * @returns OpeningHoursSpecification with @type */ declare function processOpeningHours(hours: OpeningHoursSpecification | Omit<OpeningHoursSpecification, "@type">): OpeningHoursSpecification; /** * Processes review into Review schema type with nested rating processing * @param review - Review object with or without @type * @returns Review with @type and processed nested fields */ declare function processReview(review: Review | Omit<Review, "@type">): Review; /** * Processes breadcrumb item into ListItem schema type * @param item - BreadcrumbListItem object * @param position - Position in the breadcrumb trail * @returns ListItem with @type and position */ declare function processBreadcrumbItem(item: BreadcrumbListItem, position: number): ListItem; /** * Processes location/place into Place schema type * @param location - String location or Place object * @returns Place with @type */ declare function processPlace(location: string | Place$1 | Omit<Place$1, "@type">): Place$1; /** * Processes performer into Person or PerformingGroup schema type * @param performer - String name or Performer object * @returns Person or PerformingGroup with @type */ declare function processPerformer(performer: Performer): Person | PerformingGroup; /** * Processes organizer into Person or Organization schema type * @param organizer - String name or Organizer object * @returns Person or Organization with @type */ declare function processOrganizer(organizer: Organizer): Person | Organization; /** * Processes generic organization input into Organization schema type * @param org - String name or Organization object * @returns Organization with @type and processed nested fields */ declare function processOrganization(org: string | Organization | Omit<Organization, "@type">): Organization; /** * Processes offer into Offer schema type * @param offer - Offer object with or without @type * @returns Offer with @type */ declare function processOffer(offer: Offer | Omit<Offer, "@type">): Offer; /** * Processes publisher into Person or Organization schema type * @param publisher - String name, Person, or Organization object * @returns Person or Organization with @type and processed nested fields */ declare function processPublisher(publisher: string | Organization | Person | Omit<Organization, "@type"> | Omit<Person, "@type">): Person | Organization; /** * Processes nutrition information into NutritionInformation schema type * @param nutrition - NutritionInformation object without @type * @returns NutritionInformation with @type */ declare function processNutrition(nutrition: Omit<NutritionInformation, "@type">): NutritionInformation; /** * Processes aggregate rating into AggregateRating schema type * @param rating - AggregateRating object with or without @type * @returns AggregateRating with @type */ declare function processAggregateRating(rating: AggregateRating | Omit<AggregateRating, "@type">): AggregateRating; type WebPage = { "@type": "WebPage"; "@id": string; }; /** * Processes main entity of page into string URL or WebPage schema type * @param mainEntityOfPage - String URL or WebPage object * @returns String URL or WebPage with @type */ declare function processMainEntityOfPage(mainEntityOfPage: string | WebPage | Omit<WebPage, "@type">): string | WebPage; /** * Processes simple monetary amount into MonetaryAmount schema type for return policies * @param amount - SimpleMonetaryAmount object with or without @type, or a number * @returns SimpleMonetaryAmount with @type or undefined */ declare function processSimpleMonetaryAmount(amount: number | SimpleMonetaryAmount | Omit<SimpleMonetaryAmount, "@type"> | undefined): SimpleMonetaryAmount | undefined; /** * Processes seasonal override into MerchantReturnPolicySeasonalOverride schema type * @param override - MerchantReturnPolicySeasonalOverride object with or without @type * @returns MerchantReturnPolicySeasonalOverride with @type */ declare function processReturnPolicySeasonalOverride(override: MerchantReturnPolicySeasonalOverride | Omit<MerchantReturnPolicySeasonalOverride, "@type">): MerchantReturnPolicySeasonalOverride; /** * Processes merchant return policy into MerchantReturnPolicy schema type * Enhanced to handle nested properties like MonetaryAmount and seasonal overrides * @param policy - MerchantReturnPolicy object with or without @type * @returns MerchantReturnPolicy with @type and processed nested properties */ declare function processMerchantReturnPolicy(policy: MerchantReturnPolicy | Omit<MerchantReturnPolicy, "@type">): MerchantReturnPolicy; /** * Processes tier requirement into appropriate schema type * @param requirement - Tier requirement that can be CreditCard, MonetaryAmount, UnitPriceSpecification, or string * @returns Processed tier requirement with @type */ declare function processTierRequirement(requirement: TierRequirement): TierRequirement; /** * Processes tier benefit, normalizing short names to full URLs * @param benefit - Tier benefit string or array * @returns Normalized tier benefit */ declare function processTierBenefit(benefit: TierBenefit | TierBenefit[]): TierBenefit | TierBenefit[]; /** * Processes membership points earned into QuantitativeValue * @param points - Number or QuantitativeValue * @returns QuantitativeValue with @type */ declare function processMembershipPointsEarned(points: number | QuantitativeValue | Omit<QuantitativeValue, "@type">): QuantitativeValue; /** * Processes member program tier into MemberProgramTier schema type * @param tier - MemberProgramTier with or without @type * @returns MemberProgramTier with @type */ declare function processMemberProgramTier(tier: MemberProgramTier | Omit<MemberProgramTier, "@type">): MemberProgramTier; /** * Processes member program into MemberProgram schema type * @param program - MemberProgram with or without @type * @returns MemberProgram with @type */ declare function processMemberProgram(program: MemberProgram | Omit<MemberProgram, "@type">): MemberProgram; /** * Processes video into VideoObject schema type * @param video - VideoObject with or without @type * @returns VideoObject with @type */ declare function processVideo(video: VideoObject$1 | Omit<VideoObject$1, "@type">): VideoObject$1; /** * Processes broadcast event into BroadcastEvent schema type * @param broadcast - BroadcastEvent with or without @type * @returns BroadcastEvent with @type */ declare function processBroadcastEvent(broadcast: BroadcastEvent | Omit<BroadcastEvent, "@type">): BroadcastEvent; /** * Processes clip into Clip schema type * @param clip - Clip with or without @type * @returns Clip with @type */ declare function processClip(clip: Clip | Omit<Clip, "@type">): Clip; /** * Processes seek action into SeekToAction schema type * @param action - SeekToAction with or without @type * @returns SeekToAction with @type */ declare function processSeekToAction(action: PotentialAction | Omit<PotentialAction, "@type">): PotentialAction; /** * Processes instruction into string, HowToStep, or HowToSection schema type * @param instruction - String instruction or HowTo object * @returns String, HowToStep, or HowToSection with @type */ declare function processInstruction(instruction: string | HowToStep$1 | HowToSection$1 | Omit<HowToStep$1, "@type"> | Omit<HowToSection$1, "@type">): string | HowToStep$1 | HowToSection$1; /** * Processes director into Person schema type * @param director - String name or Director object * @returns Person with @type */ declare function processDirector(director: Director): Person; /** * Processes creator(s) into Person or Organization schema type(s) * @param creator - Author or array of Authors * @returns Person/Organization or array of them with @type */ declare function processCreator(creator: Author | Author[]): Person | Organization | (Person | Organization)[]; /** * Processes identifier into string or PropertyValue schema type * @param identifier - String identifier or PropertyValue object * @returns String or PropertyValue with @type */ declare function processIdentifier(identifier: string | PropertyValue$1 | Omit<PropertyValue$1, "@type">): string | PropertyValue$1; /** * Processes spatial coverage into string or Place schema type * @param spatial - String location or DatasetPlace object * @returns String or DatasetPlace with @type and processed geo */ declare function processSpatialCoverage(spatial: string | DatasetPlace | Omit<DatasetPlace, "@type">): string | DatasetPlace; /** * Processes data download into DataDownload schema type * @param download - DataDownload object with or without @type * @returns DataDownload with @type */ declare function processDataDownload(download: DataDownload | Omit<DataDownload, "@type">): DataDownload; /** * Processes license into string URL or CreativeWork schema type * @param license - String URL or CreativeWork object * @returns String URL or CreativeWork with @type */ declare function processLicense(license: string | CreativeWork$1 | Omit<CreativeWork$1, "@type">): string | CreativeWork$1; /** * Processes data catalog into DataCatalog schema type * @param catalog - DataCatalog object with or without @type * @returns DataCatalog with @type */ declare function processDataCatalog(catalog: DataCatalog | Omit<DataCatalog, "@type">): DataCatalog; /** * Processes hiring organization into Organization schema type * @param org - String name or Organization object * @returns Organization with @type and processed logo */ declare function processHiringOrganization(org: string | Organization | Omit<Organization, "@type">): Organization; /** * Processes job location into Place schema type * @param location - String location or JobPlace object * @returns JobPlace with @type and processed address */ declare function processJobLocation(location: string | Place | Omit<Place, "@type">): Place; /** * Processes monetary amount into MonetaryAmount schema type * @param amount - MonetaryAmount object with or without @type * @returns MonetaryAmount with @type and processed value */ declare function processMonetaryAmount(amount: MonetaryAmount | Omit<MonetaryAmount, "@ty