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, "@type">): MonetaryAmount;
/**
 * Processes rating into Rating schema type
 * @param rating - Rating object with or without @type
 * @returns Rating with @type
 */
declare function processRating(rating: Rating | Omit<Rating, "@type">): Rating;
/**
 * Processes job property value into PropertyValue schema type
 * @param identifier - String identifier or JobPropertyValue object
 * @returns JobPropertyValue with @type
 */
declare function processJobPropertyValue(identifier: string | PropertyValue | Omit<PropertyValue, "@type">): PropertyValue;
/**
 * Processes applicant location requirements into Country or State schema type
 * @param location - Location requirement object
 * @returns AdministrativeArea (Country or State) with @type
 */
declare function processApplicantLocationRequirements(location: Omit<Country, "@type"> | Omit<State, "@type"> | Country | State): AdministrativeArea;
/**
 * Processes education requirements into string or EducationalOccupationalCredential
 * @param education - String description or credential object
 * @returns String or EducationalOccupationalCredential with @type
 */
declare function processEducationRequirements(education: string | EducationalOccupationalCredential | Omit<EducationalOccupationalCredential, "@type">): string | EducationalOccupationalCredential;
/**
 * Processes experience requirements into string or OccupationalExperienceRequirements
 * @param experience - String description or experience object
 * @returns String or OccupationalExperienceRequirements with @type
 */
declare function processExperienceRequirements(experience: string | OccupationalExperienceRequirements | Omit<OccupationalExperienceRequirements, "@type">): string | OccupationalExperienceRequirements;
/**
 * Processes interaction statistic into InteractionCounter schema type
 * @param statistic - InteractionCounter object with or without @type
 * @returns InteractionCounter with @type
 */
declare function processInteractionStatistic(statistic: InteractionCounter | Omit<InteractionCounter, "@type">): InteractionCounter;
/**
 * Processes shared content into WebPage, ImageObject, or VideoObject schema type
 * @param content - SharedContent (string URL or object)
 * @returns ForumWebPage, ImageObject, or VideoObject with @type
 */
declare function processSharedContent(content: SharedContent): WebPage$1 | ImageObject | VideoObject$1;
/**
 * Processes comment into Comment schema type with nested fields
 * @param comment - Comment object with or without @type
 * @returns Comment with @type and processed nested fields
 */
declare function processComment(comment: Comment | Omit<Comment, "@type">): Comment;
/**
 * Processes isPartOf into string URL or CreativeWork schema type
 * @param isPartOf - String URL or ForumCreativeWork object
 * @returns String URL or ForumCreativeWork with @type
 */
declare function processIsPartOf(isPartOf: string | CreativeWork | Omit<CreativeWork, "@type">): string | CreativeWork;
/**
 * Processes brand into Brand or Organization schema type
 * @param brand - Brand or Organization object with or without @type
 * @returns Brand or Organization with @type
 */
declare function processBrand(brand: Brand | Organization | Omit<Brand, "@type"> | Omit<Organization, "@type">): Brand | Organization;
/**
 * Processes bed details into BedDetails schema type
 * @param bed - BedDetails object with or without @type
 * @returns BedDetails with @type
 */
declare function processBedDetails(bed: BedDetails | Omit<BedDetails, "@type">): BedDetails;
/**
 * Processes location feature into LocationFeatureSpecification schema type
 * @param feature - LocationFeatureSpecification object with or without @type
 * @returns LocationFeatureSpecification with @type
 */
declare function processLocationFeatureSpecification(feature: LocationFeatureSpecification | Omit<LocationFeatureSpecification, "@type">): LocationFeatureSpecification;
/**
 * Processes accommodation into Accommodation schema type with nested fields
 * @param accommodation - Accommodation object with or without @type
 * @returns Accommodation with @type and processed nested fields
 */
declare function processAccommodation(accommodation: Accommodation | Omit<Accommodation, "@type">): Accommodation;
/**
 * Processes provider into Organization schema type
 * @param provider - String name or Provider object
 * @returns Organization with @type
 */
declare function processProvider(provider: Provider): Organization;
/**
 * Processes funder(s) into Person or Organization schema type(s)
 * @param funder - Author or array of Authors representing funders
 * @returns Person/Organization or array of them with @type
 */
declare function processFunder(funder: Author | Author[]): Person | Organization | (Person | Organization)[];
/**
 * Processes screenshot the same way as images
 * @param screenshot - URL string or ImageObject
 * @returns URL string or ImageObject with @type
 */
declare function processScreenshot(screenshot: string | ImageObject | Omit<ImageObject, "@type">): string | ImageObject;
/**
 * Processes feature list - no transformation needed
 * @param features - String or array of strings
 * @returns String or array of strings as-is
 */
declare function processFeatureList(features: string | string[]): string | string[];
/**
 * Processes claim review rating into ClaimReviewRating schema type
 * @param rating - Rating object with or without @type
 * @returns ClaimReviewRating with @type
 */
declare function processClaimReviewRating(rating: ClaimReviewRating | Omit<ClaimReviewRating, "@type">): ClaimReviewRating;
/**
 * Processes claim into Claim schema type with nested fields
 * @param claim - Claim object with or without @type
 * @returns Claim with @type and processed nested fields
 */
declare function processClaim(claim: Claim | Omit<Claim, "@type">): Claim;
/**
 * Processes appearance into string URL or ClaimCreativeWork schema type
 * @param appearance - String URL or CreativeWork object
 * @returns String URL or ClaimCreativeWork with @type
 */
declare function processAppearance(appearance: string | ClaimCreativeWork | Omit<ClaimCreativeWork, "@type">): string | ClaimCreativeWork;
/**
 * Processes WebPageElement for marking paywalled sections
 * @param element - WebPageElement object with or without @type
 * @returns WebPageElement with @type
 * @example
 * processWebPageElement({ isAccessibleForFree: false, cssSelector: ".paywall" })
 * // { "@type": "WebPageElement", isAccessibleForFree: false, cssSelector: ".paywall" }
 */
declare function processWebPageElement(element: WebPageElement | Omit<WebPageElement, "@type">): WebPageElement;
/**
 * Processes product offer into ProductOffer schema type
 * @param offer - ProductOffer object with or without @type
 * @returns ProductOffer with @type and processed nested fields
 */
declare function processProductOffer(offer: ProductOffer | Omit<ProductOffer, "@type">): ProductOffer;
/**
 * Processes aggregate offer into AggregateOffer schema type
 * @param offer - AggregateOffer object with or without @type
 * @returns AggregateOffer with @type and processed nested offers
 */
declare function processAggregateOffer(offer: AggregateOffer | Omit<AggregateOffer, "@type">): AggregateOffer;
/**
 * Processes price specification into PriceSpecification or UnitPriceSpecification schema type
 * @param spec - PriceSpecification or UnitPriceSpecification object with or without @type
 * @returns PriceSpecification or UnitPriceSpecification with @type
 */
declare function processPriceSpecification(spec: PriceSpecification | UnitPriceSpecification | Omit<PriceSpecification, "@type"> | Omit<UnitPriceSpecification, "@type">): PriceSpecification | UnitPriceSpecification;
/**
 * Processes unit price specification into UnitPriceSpecification schema type
 * @param spec - UnitPriceSpecification object with or without @type
 * @returns UnitPriceSpecification with @type
 */
declare function processUnitPriceSpecification(spec: UnitPriceSpecification | Omit<UnitPriceSpecification, "@type">): UnitPriceSpecification;
/**
 * Processes QuantitativeValue into schema type
 * @param value - QuantitativeValue object with or without @type
 * @returns QuantitativeValue with @type
 */
declare function processQuantitativeValue(value: QuantitativeValue | Omit<QuantitativeValue, "@type">): QuantitativeValue;
/**
 * Processes product item list into ProductItemList schema type
 * @param list - ProductItemList object with or without @type
 * @returns ProductItemList with @type and processed items
 */
declare function processProductItemList(list: ProductItemList | Omit<ProductItemList, "@type">): ProductItemList;
/**
 * Processes product review into ProductReview schema type with pros/cons
 * @param review - ProductReview object with or without @type
 * @returns ProductReview with @type and processed nested fields
 */
declare function processProductReview(review: ProductReview | Omit<ProductReview, "@type">): ProductReview;
/**
 * Processes variesBy property to ensure full schema.org URLs
 * @param variesBy - Simple string or full URL, single or array
 * @returns Processed variesBy with full schema.org URLs
 */
declare function processVariesBy(variesBy: VariesBy | VariesBy[]): string | string[];
/**
 * Processes a product variant for use in ProductGroup
 * @param variant - Product object, simplified variant with just URL, or processed Product
 * @returns Product with @type or simplified variant object
 */
declare function processProductVariant(variant: Product | Omit<Product, "@type"> | {
    url: string;
} | {
    "@type": "Product";
    url: string;
}): Product | {
    "@type": "Product";
    url: string;
} | {
    url: string;
};
/**
 * Processes certification into Certification schema type
 * @param cert - Certification object with or without @type
 * @returns Certification with @type
 */
declare function processCertification(cert: Certification | Omit<Certification, "@type">): Certification;
/**
 * Processes people audience into PeopleAudience schema type
 * @param audience - PeopleAudience object with or without @type
 * @returns PeopleAudience with @type
 */
declare function processPeopleAudience(audience: PeopleAudience | Omit<PeopleAudience, "@type">): PeopleAudience;
/**
 * Processes size specification into SizeSpecification schema type
 * @param size - String or SizeSpecification object with or without @type
 * @returns SizeSpecification with @type or string
 */
declare function processSizeSpecification(size: string | SizeSpecification | Omit<SizeSpecification, "@type">): string | SizeSpecification;
/**
 * Processes 3D model into ThreeDModel schema type
 * @param model - ThreeDModel object with or without @type
 * @returns ThreeDModel with @type
 */
declare function processThreeDModel(model: ThreeDModel | Omit<ThreeDModel, "@type">): ThreeDModel;
/**
 * Processes defined region into DefinedRegion schema type
 * @param region - DefinedRegion object with or without @type
 * @returns DefinedRegion with @type
 */
declare function processDefinedRegion(region: DefinedRegion | Omit<DefinedRegion, "@type">): DefinedRegion;
/**
 * Processes shipping delivery time into ShippingDeliveryTime schema type
 * @param time - ShippingDeliveryTime object with or without @type
 * @returns ShippingDeliveryTime with @type
 */
declare function processShippingDeliveryTime(time: ShippingDeliveryTime | Omit<ShippingDeliveryTime, "@type">): ShippingDeliveryTime;
/**
 * Processes offer shipping details into OfferShippingDetails schema type
 * @param details - OfferShippingDetails object with or without @type
 * @returns OfferShippingDetails with @type
 */
declare function processOfferShippingDetails(details: OfferShippingDetails | Omit<OfferShippingDetails, "@type">): OfferShippingDetails;
type ItemReviewedType$1 = "Book" | "Course" | "CreativeWorkSeason" | "CreativeWorkSeries" | "Episode" | "Event" | "Game" | "HowTo" | "LocalBusiness" | "MediaObject" | "Movie" | "MusicPlaylist" | "MusicRecording" | "Organization" | "Product" | "Recipe" | "SoftwareApplication";
type ItemReviewedInput$1 = string | ({
    name: string;
    "@type"?: ItemReviewedType$1;
} & Record<string, unknown>);
/**
 * Processes itemReviewed into a specific schema type if possible, otherwise Thing
 * @param itemReviewed - String name or object with optional @type
 * @param defaultType - Optional default @type to apply when missing
 */
declare function processItemReviewed(itemReviewed: ItemReviewedInput$1, defaultType?: ItemReviewedType$1 | "Thing"): Record<string, unknown>;
/**
 * Processes HowTo direction into HowToDirection schema type
 * @param direction - HowToDirection object with or without @type
 * @returns HowToDirection with @type
 */
declare function processHowToDirection(direction: HowToDirection | Omit<HowToDirection, "@type">): HowToDirection;
/**
 * Processes HowTo tip into HowToTip schema type
 * @param tip - HowToTip object with or without @type
 * @returns HowToTip with @type
 */
declare function processHowToTip(tip: HowToTip | Omit<HowToTip, "@type">): HowToTip;
/**
 * Processes HowTo step into HowToStep schema type
 * @param step - String, HowToStep object with or without @type
 * @returns HowToStep with @type
 */
declare function processHowToStep(step: string | HowToStep | Omit<HowToStep, "@type">): string | HowToStep;
/**
 * Processes HowTo section into HowToSection schema type
 * @param section - HowToSection object with or without @type
 * @returns HowToSection with @type
 */
declare function processHowToSection(section: HowToSection | Omit<HowToSection, "@type">): HowToSection;
/**
 * Processes HowTo step (can be string, HowToStep, or HowToSection)
 * @param step - String, HowToStep, or HowToSection with or without @type
 * @returns Processed step with @type
 */
declare function processStep(step: Step): string | HowToStep | HowToSection;
/**
 * Processes HowTo supply into HowToSupply schema type
 * @param supply - String or HowToSupply object with or without @type
 * @returns HowToSupply with @type
 */
declare function processHowToSupply(supply: Supply): HowToSupply;
/**
 * Processes HowTo tool into HowToTool schema type
 * @param tool - String or HowToTool object with or without @type
 * @returns HowToTool with @type
 */
declare function processHowToTool(tool: Tool): HowToTool;
/**
 * Processes estimated cost into MonetaryAmount schema type
 * @param cost - String or MonetaryAmount object with or without @type
 * @returns String or MonetaryAmount with @type
 */
declare function processEstimatedCost(cost: EstimatedCost): string | SimpleMonetaryAmount;
/**
 * Processes HowTo yield into string or QuantitativeValue schema type
 * @param yieldValue - String or QuantitativeValue object with or without @type
 * @returns String or QuantitativeValue with @type
 */
declare function processHowToYield(yieldValue: HowToYield): string | QuantitativeValue;

/**
 * Public API for custom component creation
 * These processors help maintain the @type optional pattern
 * and provide flexible input handling for structured data
 */

declare const processors_export_processAccommodation: typeof processAccommodation;
declare const processors_export_processAddress: typeof processAddress;
declare const processors_export_processAggregateOffer: typeof processAggregateOffer;
declare const processors_export_processAggregateRating: typeof processAggregateRating;
declare const processors_export_processAppearance: typeof processAppearance;
declare const processors_export_processApplicantLocationRequirements: typeof processApplicantLocationRequirements;
declare const processors_export_processAuthor: typeof processAuthor;
declare const processors_export_processBedDetails: typeof processBedDetails;
declare const processors_export_processBrand: typeof processBrand;
declare const processors_export_processBreadcrumbItem: typeof processBreadcrumbItem;
declare const processors_export_processBroadcastEvent: typeof processBroadcastEvent;
declare const processors_export_processCertification: typeof processCertification;
declare const processors_export_processClaim: typeof processClaim;
declare const processors_export_processClaimReviewRating: typeof processClaimReviewRating;
declare const processors_export_processClip: typeof processClip;
declare const processors_export_processComment: typeof processComment;
declare const processors_export_processContactPoint: typeof processContactPoint;
declare const processors_export_processCreator: typeof processCreator;
declare const processors_export_processDataCatalog: typeof processDataCatalog;
declare const processors_export_processDataDownload: typeof processDataDownload;
declare const processors_export_processDefinedRegion: typeof processDefinedRegion;
declare const processors_export_processDirector: typeof processDirector;
declare const processors_export_processEducationRequirements: typeof processEducationRequirements;
declare const processors_export_processEstimatedCost: typeof processEstimatedCost;
declare const processors_export_processExperienceRequirements: typeof processExperienceRequirements;
declare const processors_export_processFeatureList: typeof processFeatureList;
declare const processors_export_processFunder: typeof processFunder;
declare const processors_export_processGeo: typeof processGeo;
declare const processors_export_processHiringOrganization: typeof processHiringOrganization;
declare const processors_export_processHowToDirection: typeof processHowToDirection;
declare const processors_export_processHowToSection: typeof processHowToSection;
declare const processors_export_processHowToStep: typeof processHowToStep;
declare const processors_export_processHowToSupply: typeof processHowToSupply;
declare const processors_export_processHowToTip: typeof processHowToTip;
declare const processors_export_processHowToTool: typeof processHowToTool;
declare const processors_export_processHowToYield: typeof processHowToYield;
declare const processors_export_processIdentifier: typeof processIdentifier;
declare const processors_export_processImage: typeof processImage;
declare const processors_export_processInstruction: typeof processInstruction;
declare const processors_export_processInteractionStatistic: typeof processInteractionStatistic;
declare const processors_export_processIsPartOf: typeof processIsPartOf;
declare const processors_export_processItemReviewed: typeof processItemReviewed;
declare const processors_export_processJobLocation: typeof processJobLocation;
declare const processors_export_processJobPropertyValue: typeof processJobPropertyValue;
declare const processors_export_processLicense: typeof processLicense;
declare const processors_export_processLocationFeatureSpecification: typeof processLocationFeatureSpecification;
declare const processors_export_processLogo: typeof processLogo;
declare const processors_export_processMainEntityOfPage: typeof processMainEntityOfPage;
declare const processors_export_processMemberProgram: typeof processMemberProgram;
declare const processors_export_processMemberProgramTier: typeof processMemberProgramTier;
declare const processors_export_processMembershipPointsEarned: typeof processMembershipPointsEarned;
declare const processors_export_processMerchantReturnPolicy: typeof processMerchantReturnPolicy;
declare const processors_export_processMonetaryAmount: typeof processMonetaryAmount;
declare const processors_export_processNumberOfEmployees: typeof processNumberOfEmployees;
declare const processors_export_processNutrition: typeof processNutrition;
declare const processors_export_processOffer: typeof processOffer;
declare const processors_export_processOfferShippingDetails: typeof processOfferShippingDetails;
declare const processors_export_processOpeningHours: typeof processOpeningHours;
declare const processors_export_processOrganization: typeof processOrganization;
declare const processors_export_processOrganizer: typeof processOrganizer;
declare const processors_export_processPeopleAudience: typeof processPeopleAudience;
declare const processors_export_processPerformer: typeof processPerformer;
declare const processors_export_processPlace: typeof processPlace;
declare const processors_export_processPriceSpecification: typeof processPriceSpecification;
declare const processors_export_processProductItemList: typeof processProductItemList;
declare const processors_export_processProductOffer: typeof processProductOffer;
declare const processors_export_processProductReview: typeof processProductReview;
declare const processors_export_processProductVariant: typeof processProductVariant;
declare const processors_export_processProvider: typeof processProvider;
declare const processors_export_processPublisher: typeof processPublisher;
declare const processors_export_processQuantitativeValue: typeof processQuantitativeValue;
declare const processors_export_processRating: typeof processRating;
declare const processors_export_processReturnPolicySeasonalOverride: typeof processReturnPolicySeasonalOverride;
declare const processors_export_processReview: typeof processReview;
declare const processors_export_processSchemaType: typeof processSchemaType;
declare const processors_export_processScreenshot: typeof processScreenshot;
declare const processors_export_processSeekToAction: typeof processSeekToAction;
declare const processors_export_processSharedContent: typeof processSharedContent;
declare const processors_export_processShippingDeliveryTime: typeof processShippingDeliveryTime;
declare const processors_export_processSimpleMonetaryAmount: typeof processSimpleMonetaryAmount;
declare const processors_export_processSizeSpecification: typeof processSizeSpecification;
declare const processors_export_processSpatialCoverage: typeof processSpatialCoverage;
declare const processors_export_processStep: typeof processStep;
declare const processors_export_processThreeDModel: typeof processThreeDModel;
declare const processors_export_processTierBenefit: typeof processTierBenefit;
declare const processors_export_processTierRequirement: typeof processTierRequirement;
declare const processors_export_processUnitPriceSpecification: typeof processUnitPriceSpecification;
declare const processors_export_processVariesBy: typeof processVariesBy;
declare const processors_export_processVideo: typeof processVideo;
declare const processors_export_processWebPageElement: typeof processWebPageElement;
declare namespace processors_export {
  export { type ItemReviewedType$1 as ItemReviewedType, processors_export_processAccommodation as processAccommodation, processors_export_processAddress as processAddress, processors_export_processAggregateOffer as processAggregateOffer, processors_export_processAggregateRating as processAggregateRating, processors_export_processAppearance as processAppearance, processors_export_processApplicantLocationRequirements as processApplicantLocationRequirements, processors_export_processAuthor as processAuthor, processors_export_processBedDetails as processBedDetails, processors_export_processBrand as processBrand, processors_export_processBreadcrumbItem as processBreadcrumbItem, processors_export_processBroadcastEvent as processBroadcastEvent, processors_export_processCertification as processCertification, processors_export_processClaim as processClaim, processors_export_processClaimReviewRating as processClaimReviewRating, processors_export_processClip as processClip, processors_export_processComment as processComment, processors_export_processContactPoint as processContactPoint, processors_export_processCreator as processCreator, processors_export_processDataCatalog as processDataCatalog, processors_export_processDataDownload as processDataDownload, processors_export_processDefinedRegion as processDefinedRegion, processors_export_processDirector as processDirector, processors_export_processEducationRequirements as processEducationRequirements, processors_export_processEstimatedCost as processEstimatedCost, processors_export_processExperienceRequirements as processExperienceRequirements, processors_export_processFeatureList as processFeatureList, processors_export_processFunder as processFunder, processors_export_processGeo as processGeo, processors_export_processHiringOrganization as processHiringOrganization, processors_export_processHowToDirection as processHowToDirection, processors_export_processHowToSection as processHowToSection, processors_export_processHowToStep as processHowToStep, processors_export_processHowToSupply as processHowToSupply, processors_export_processHowToTip as processHowToTip, processors_export_processHowToTool as processHowToTool, processors_export_processHowToYield as processHowToYield, processors_export_processIdentifier as processIdentifier, processors_export_processImage as processImage, processors_export_processInstruction as processInstruction, processors_export_processInteractionStatistic as processInteractionStatistic, processors_export_processIsPartOf as processIsPartOf, processors_export_processItemReviewed as processItemReviewed, processors_export_processJobLocation as processJobLocation, processors_export_processJobPropertyValue as processJobPropertyValue, processors_export_processLicense as processLicense, processors_export_processLocationFeatureSpecification as processLocationFeatureSpecification, processors_export_processLogo as processLogo, processors_export_processMainEntityOfPage as processMainEntityOfPage, processors_export_processMemberProgram as processMemberProgram, processors_export_processMemberProgramTier as processMemberProgramTier, processors_export_processMembershipPointsEarned as processMembershipPointsEarned, processors_export_processMerchantReturnPolicy as processMerchantReturnPolicy, processors_export_processMonetaryAmount as processMonetaryAmount, processors_export_processNumberOfEmployees as processNumberOfEmployees, processors_export_processNutrition as processNutrition, processors_export_processOffer as processOffer, processors_export_processOfferShippingDetails as processOfferShippingDetails, processors_export_processOpeningHours as processOpeningHours, processors_export_processOrganization as processOrganization, processors_export_processOrganizer as processOrganizer, processors_export_processPeopleAudience as processPeopleAudience, processors_export_processPerformer as processPerformer, processors_export_processPlace as processPlace, processors_export_processPriceSpecification as processPriceSpecification, processors_export_processProductItemList as processProductItemList, processors_export_processProductOffer as processProductOffer, processors_export_processProductReview as processProductReview, processors_export_processProductVariant as processProductVariant, processors_export_processProvider as processProvider, processors_export_processPublisher as processPublisher, processors_export_processQuantitativeValue as processQuantitativeValue, processors_export_processRating as processRating, processors_export_processReturnPolicySeasonalOverride as processReturnPolicySeasonalOverride, processors_export_processReview as processReview, processors_export_processSchemaType as processSchemaType, processors_export_processScreenshot as processScreenshot, processors_export_processSeekToAction as processSeekToAction, processors_export_processSharedContent as processSharedContent, processors_export_processShippingDeliveryTime as processShippingDeliveryTime, processors_export_processSimpleMonetaryAmount as processSimpleMonetaryAmount, processors_export_processSizeSpecification as processSizeSpecification, processors_export_processSpatialCoverage as processSpatialCoverage, processors_export_processStep as processStep, processors_export_processThreeDModel as processThreeDModel, processors_export_processTierBenefit as processTierBenefit, processors_export_processTierRequirement as processTierRequirement, processors_export_processUnitPriceSpecification as processUnitPriceSpecification, processors_export_processVariesBy as processVariesBy, processors_export_processVideo as processVideo, processors_export_processWebPageElement as processWebPageElement };
}

type Publisher = string | Organization | Person | Omit<Organization, "@type"> | Omit<Person, "@type">;
interface ArticleBase {
    headline: string;
    url?: string;
    author?: Author | Author[];
    datePublished?: string;
    dateModified?: string;
    image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    publisher?: Publisher;
    description?: string;
    isAccessibleForFree?: boolean;
    mainEntityOfPage?: string | {
        "@type": "WebPage";
        "@id": string;
    } | {
        "@id": string;
    };
}
interface Article extends ArticleBase {
    "@type": "Article";
}
interface NewsArticle extends ArticleBase {
    "@type": "NewsArticle";
}
interface BlogPosting extends ArticleBase {
    "@type": "BlogPosting";
}
interface Blog extends ArticleBase {
    "@type": "Blog";
}
type ArticleJsonLdProps = (Omit<Article, "@type"> | Omit<NewsArticle, "@type"> | Omit<BlogPosting, "@type"> | Omit<Blog, "@type">) & {
    type?: "Article" | "NewsArticle" | "BlogPosting" | "Blog";
    scriptId?: string;
    scriptKey?: string;
};

declare function ArticleJsonLd({ type, scriptId, scriptKey, headline, url, author, datePublished, dateModified, image, publisher, description, isAccessibleForFree, mainEntityOfPage, }: ArticleJsonLdProps): react_jsx_runtime.JSX.Element;

declare function ClaimReviewJsonLd({ scriptId, scriptKey, claimReviewed, reviewRating, url, author, itemReviewed, }: ClaimReviewJsonLdProps): react_jsx_runtime.JSX.Element;

declare function CreativeWorkJsonLd({ type, scriptId, scriptKey, headline, name, url, author, datePublished, dateModified, image, publisher, description, isAccessibleForFree, hasPart, mainEntityOfPage, text, // For Comment
provider, // For Course
itemReviewed, // For Review
reviewRating, }: CreativeWorkJsonLdProps): react_jsx_runtime.JSX.Element;

declare function RecipeJsonLd({ scriptId, scriptKey, name, image, description, author, datePublished, prepTime, cookTime, totalTime, recipeYield, recipeCategory, recipeCuisine, nutrition, recipeIngredient, recipeInstructions, aggregateRating, video, keywords, url, }: RecipeJsonLdProps): react_jsx_runtime.JSX.Element;

declare function HowToJsonLd({ scriptId, scriptKey, name, description, image, estimatedCost, performTime, prepTime, totalTime, step, supply, tool, yield: yieldValue, video, }: HowToJsonLdProps): react_jsx_runtime.JSX.Element;

type OrganizationBase = Omit<Organization, "@type">;
interface OnlineStore extends OrganizationBase {
    "@type": "OnlineStore";
    hasMerchantReturnPolicy?: MerchantReturnPolicy | Omit<MerchantReturnPolicy, "@type"> | MerchantReturnPolicy[] | Omit<MerchantReturnPolicy, "@type">[];
    hasMemberProgram?: MemberProgram | Omit<MemberProgram, "@type"> | MemberProgram[] | Omit<MemberProgram, "@type">[];
}
type OrganizationJsonLdProps = (Omit<Organization, "@type"> | Omit<OnlineStore, "@type">) & {
    type?: "Organization" | "OnlineStore";
    scriptId?: string;
    scriptKey?: string;
};

declare function OrganizationJsonLd(props: OrganizationJsonLdProps): react_jsx_runtime.JSX.Element;

interface LocalBusinessBase {
    name: string;
    address: string | PostalAddress | Omit<PostalAddress, "@type"> | (string | PostalAddress | Omit<PostalAddress, "@type">)[];
    url?: string;
    telephone?: string;
    image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    priceRange?: string;
    geo?: GeoCoordinates | Omit<GeoCoordinates, "@type">;
    openingHoursSpecification?: OpeningHoursSpecification | Omit<OpeningHoursSpecification, "@type"> | OpeningHoursSpecification[] | Omit<OpeningHoursSpecification, "@type">[];
    review?: Review | Omit<Review, "@type"> | Review[] | Omit<Review, "@type">[];
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
    department?: LocalBusinessBase | LocalBusinessBase[];
    menu?: string;
    servesCuisine?: string | string[];
    sameAs?: string | string[];
    branchOf?: Organization;
    currenciesAccepted?: string;
    paymentAccepted?: string;
    areaServed?: string | string[];
    email?: string;
    faxNumber?: string;
    slogan?: string;
    description?: string;
    publicAccess?: boolean;
    smokingAllowed?: boolean;
    isAccessibleForFree?: boolean;
}
interface Restaurant extends LocalBusinessBase {
    "@type": "Restaurant";
    servesCuisine?: string | string[];
    menu?: string;
}
type LocalBusinessJsonLdProps = Omit<LocalBusinessBase, "department"> & {
    type?: string | string[];
    scriptId?: string;
    scriptKey?: string;
    department?: (Omit<LocalBusinessBase, "department"> & {
        type?: string | string[];
    }) | (Omit<LocalBusinessBase, "department"> & {
        type?: string | string[];
    })[];
};

declare function LocalBusinessJsonLd({ type, scriptId, scriptKey, name, address, url, telephone, image, priceRange, geo, openingHoursSpecification, review, aggregateRating, department, menu, servesCuisine, sameAs, branchOf, currenciesAccepted, paymentAccepted, areaServed, email, faxNumber, slogan, description, publicAccess, smokingAllowed, isAccessibleForFree, }: LocalBusinessJsonLdProps): react_jsx_runtime.JSX.Element;

type MerchantReturnPolicyJsonLdProps = Omit<MerchantReturnPolicy, "@type"> & {
    scriptId?: string;
    scriptKey?: string;
};

declare function MerchantReturnPolicyJsonLd({ scriptId, scriptKey, applicableCountry, returnPolicyCountry, returnPolicyCategory, merchantReturnDays, returnMethod, returnFees, returnShippingFeesAmount, refundType, restockingFee, returnLabelSource, itemCondition, customerRemorseReturnFees, customerRemorseReturnShippingFeesAmount, customerRemorseReturnLabelSource, itemDefectReturnFees, itemDefectReturnShippingFeesAmount, itemDefectReturnLabelSource, returnPolicySeasonalOverride, merchantReturnLink, }: MerchantReturnPolicyJsonLdProps): react_jsx_runtime.JSX.Element;

declare function MovieCarouselJsonLd(props: MovieCarouselJsonLdProps): react_jsx_runtime.JSX.Element;

declare function BreadcrumbJsonLd(props: BreadcrumbJsonLdProps): react_jsx_runtime.JSX.Element;

type SummaryPageItem = string | {
    url: string;
    position?: number;
};
type CourseItem = Omit<Course, "@type" | "provider"> & {
    provider?: string | Organization | Omit<Organization, "@type">;
};
type MovieItem = Omit<Movie, "@type" | "image"> & {
    image: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    director?: string | Person | Omit<Person, "@type">;
    review?: Review | Omit<Review, "@type">;
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
};
type RecipeItem = Omit<Recipe, "@type" | "image" | "aggregateRating" | "video"> & {
    image: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
    video?: VideoObject$1 | Omit<VideoObject$1, "@type">;
};
type RestaurantItem = Omit<Restaurant, "@type" | "image" | "geo" | "openingHoursSpecification" | "review" | "aggregateRating"> & {
    image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    geo?: GeoCoordinates | Omit<GeoCoordinates, "@type">;
    openingHoursSpecification?: OpeningHoursSpecification | Omit<OpeningHoursSpecification, "@type"> | OpeningHoursSpecification[] | Omit<OpeningHoursSpecification, "@type">[];
    review?: Review | Omit<Review, "@type"> | Review[] | Omit<Review, "@type">[];
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
};
interface CarouselJsonLdBaseProps {
    scriptId?: string;
    scriptKey?: string;
}
interface SummaryPageProps extends CarouselJsonLdBaseProps {
    urls: SummaryPageItem[];
}
interface CourseCarouselProps extends CarouselJsonLdBaseProps {
    contentType: "Course";
    items: CourseItem[];
}
interface MovieCarouselProps extends CarouselJsonLdBaseProps {
    contentType: "Movie";
    items: MovieItem[];
}
interface RecipeCarouselProps extends CarouselJsonLdBaseProps {
    contentType: "Recipe";
    items: RecipeItem[];
}
interface RestaurantCarouselProps extends CarouselJsonLdBaseProps {
    contentType: "Restaurant";
    items: RestaurantItem[];
}
type CarouselJsonLdProps = SummaryPageProps | CourseCarouselProps | MovieCarouselProps | RecipeCarouselProps | RestaurantCarouselProps;

declare function CarouselJsonLd(props: CarouselJsonLdProps): react_jsx_runtime.JSX.Element;

declare function CourseJsonLd(props: CourseJsonLdProps): react_jsx_runtime.JSX.Element;

declare function EventJsonLd({ scriptId, scriptKey, name, startDate, location, endDate, description, eventStatus, image, offers, performer, organizer, previousStartDate, url, }: EventJsonLdProps): react_jsx_runtime.JSX.Element;

interface Answer$1 {
    "@type": "Answer";
    text: string;
}
interface Question$1 {
    "@type": "Question";
    name: string;
    acceptedAnswer: Answer$1;
}
type QuestionInput$1 = string | {
    question: string;
    answer: string;
} | {
    name: string;
    acceptedAnswer: string | Answer$1;
} | Omit<Question$1, "@type">;
interface FAQJsonLdProps {
    questions: QuestionInput$1[];
    scriptId?: string;
    scriptKey?: string;
}

declare function FAQJsonLd({ questions, scriptId, scriptKey, }: FAQJsonLdProps): react_jsx_runtime.JSX.Element;

interface ImageBase {
    contentUrl: string;
    creator?: Author | Author[];
    creditText?: string;
    copyrightNotice?: string;
    license?: string;
    acquireLicensePage?: string;
}
interface ImageMetadata extends ImageBase {
    "@type": "ImageObject";
}
type ImageJsonLdProps = {
    scriptId?: string;
    scriptKey?: string;
} & (Omit<ImageMetadata, "@type"> | {
    images: Omit<ImageMetadata, "@type">[];
});

declare function ImageJsonLd({ scriptId, scriptKey, ...props }: ImageJsonLdProps): react_jsx_runtime.JSX.Element;

interface Answer {
    "@type": "Answer";
    text: string;
}
interface Question {
    "@context"?: "https://schema.org/";
    "@type": "Question";
    eduQuestionType: "Flashcard";
    text: string;
    acceptedAnswer: Answer;
}
type QuestionInput = string | {
    question: string;
    answer: string;
} | {
    text: string;
    acceptedAnswer: string | Answer;
} | Omit<Question, "@type" | "@context" | "eduQuestionType">;
interface QuizJsonLdProps {
    questions: QuestionInput[];
    about?: string | Thing;
    educationalAlignment?: Array<{
        type: "educationalSubject" | "educationalLevel";
        name: string;
    }>;
    scriptId?: string;
    scriptKey?: string;
}

declare function QuizJsonLd({ questions, about, educationalAlignment, scriptId, scriptKey, }: QuizJsonLdProps): react_jsx_runtime.JSX.Element;

declare function DatasetJsonLd({ scriptId, scriptKey, name, description, url, sameAs, identifier, keywords, license, isAccessibleForFree, hasPart, isPartOf, creator, funder, includedInDataCatalog, distribution, temporalCoverage, spatialCoverage, alternateName, citation, measurementTechnique, variableMeasured, version, }: DatasetJsonLdProps): react_jsx_runtime.JSX.Element;

declare function JobPostingJsonLd({ scriptId, scriptKey, title, description, datePosted, hiringOrganization, jobLocation, url, validThrough, employmentType, identifier, baseSalary, applicantLocationRequirements, jobLocationType, directApply, educationRequirements, experienceRequirements, experienceInPlaceOfEducation, }: JobPostingJsonLdProps): react_jsx_runtime.JSX.Element;

declare function DiscussionForumPostingJsonLd({ type, scriptId, scriptKey, headline, text, image, video, author, datePublished, dateModified, url, comment, creativeWorkStatus, interactionStatistic, isPartOf, sharedContent, }: DiscussionForumPostingJsonLdProps): react_jsx_runtime.JSX.Element;

interface EmployerAggregateRating {
    "@type": "EmployerAggregateRating";
    itemReviewed: Organization;
    ratingValue: number | string;
    ratingCount?: number;
    reviewCount?: number;
    bestRating?: number;
    worstRating?: number;
}
type EmployerAggregateRatingJsonLdProps = Omit<EmployerAggregateRating, "@type" | "itemReviewed"> & {
    itemReviewed: string | Organization | Omit<Organization, "@type">;
    scriptId?: string;
    scriptKey?: string;
};

declare function EmployerAggregateRatingJsonLd({ scriptId, scriptKey, itemReviewed, ratingValue, ratingCount, reviewCount, bestRating, worstRating, }: EmployerAggregateRatingJsonLdProps): react_jsx_runtime.JSX.Element;

interface VacationRentalBase {
    containsPlace: Accommodation | Omit<Accommodation, "@type">;
    identifier: string;
    image: string | string[] | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    latitude: number | string;
    longitude: number | string;
    name: string;
    additionalType?: string;
    address?: PostalAddress | Omit<PostalAddress, "@type">;
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
    brand?: Brand | Omit<Brand, "@type">;
    checkinTime?: string;
    checkoutTime?: string;
    description?: string;
    knowsLanguage?: string | string[];
    review?: Review | Omit<Review, "@type"> | (Review | Omit<Review, "@type">)[];
    geo?: {
        latitude: number | string;
        longitude: number | string;
    };
}
type VacationRentalJsonLdProps = Omit<VacationRentalBase, "@type"> & {
    scriptId?: string;
    scriptKey?: string;
};

declare function VacationRentalJsonLd({ scriptId, scriptKey, containsPlace, identifier, image, latitude, longitude, name, additionalType, address, aggregateRating, brand, checkinTime, checkoutTime, description, knowsLanguage, review, geo, }: VacationRentalJsonLdProps): react_jsx_runtime.JSX.Element;

declare function VideoJsonLd({ type, scriptId, scriptKey, name, description, thumbnailUrl, uploadDate, contentUrl, embedUrl, duration, expires, interactionStatistic, regionsAllowed, ineligibleRegion, publication, hasPart, potentialAction, author, publisher, }: VideoJsonLdProps): react_jsx_runtime.JSX.Element;

type ProfilePageJsonLdProps = {
    mainEntity: string | Person | Organization | Omit<Person, "@type"> | Omit<Organization, "@type">;
    dateCreated?: string;
    dateModified?: string;
    scriptId?: string;
    scriptKey?: string;
};

declare function ProfilePageJsonLd({ mainEntity, dateCreated, dateModified, scriptId, scriptKey, }: ProfilePageJsonLdProps): react_jsx_runtime.JSX.Element;

interface SoftwareApplicationBase {
    name?: string;
    description?: string;
    url?: string;
    image?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    applicationCategory?: string;
    applicationSubCategory?: string;
    applicationSuite?: string;
    operatingSystem?: string;
    memoryRequirements?: string;
    processorRequirements?: string;
    storageRequirements?: string;
    availableOnDevice?: string;
    downloadUrl?: string;
    installUrl?: string;
    countriesSupported?: string | string[];
    countriesNotSupported?: string | string[];
    permissions?: string | string[];
    softwareVersion?: string;
    releaseNotes?: string;
    screenshot?: string | ImageObject | Omit<ImageObject, "@type"> | (string | ImageObject | Omit<ImageObject, "@type">)[];
    featureList?: string | string[];
    offers?: Offer | Omit<Offer, "@type"> | (Offer | Omit<Offer, "@type">)[];
    aggregateRating?: AggregateRating | Omit<AggregateRating, "@type">;
    review?: Review | Omit<Review, "@type"> | (Review | Omit<Review, "@type">)[];
    author?: Author;
    publisher?: Organization | Omit<Organization, "@type">;
    datePublished?: string;
    dateModified?: string;
    contentRating?: string;
}
interface SoftwareApplication extends SoftwareApplicationBase {
    "@type": "SoftwareApplication";
}
interface MobileApplication extends SoftwareApplicationBase {
    "@type": "MobileApplication";
}
interface WebApplication extends SoftwareApplicationBase {
    "@type": "WebApplication";
}
interface GameApplication extends SoftwareApplicationBase {
    "@type": "GameApplication";
}
interface SocialNetworkingApplication extends SoftwareApplicationBase {
    "@type": "SocialNetworkingApplication";
}
interface TravelApplication extends SoftwareApplicationBase {
    "@type": "TravelApplication";
}
interface ShoppingApplication extends SoftwareApplicationBase {
    "@type": "ShoppingApplication";
}
interface SportsApplication extends SoftwareApplicationBase {
    "@type": "SportsApplication";
}
interface LifestyleApplication extends SoftwareApplicationBase {
    "@type": "LifestyleApplication";
}
interface BusinessApplication extends SoftwareApplicationBase {
    "@type": "BusinessApplication";
}
interface DesignApplication extends SoftwareApplicationBase {
    "@type": "DesignApplication";
}
interface DeveloperApplication extends SoftwareApplicationBase {
    "@type": "DeveloperApplication";
}
interface DriverApplication extends SoftwareApplicationBase {
    "@type": "DriverApplication";
}
interface EducationalApplication extends SoftwareApplicationBase {
    "@type": "EducationalApplication";
}
interface HealthApplication extends SoftwareApplicationBase {
    "@type": "HealthApplication";
}
interface FinanceApplication extends SoftwareApplicationBase {
    "@type": "FinanceApplication";
}
interface SecurityApplication extends SoftwareApplicationBase {
    "@type": "SecurityApplication";
}
interface BrowserApplication extends SoftwareApplicationBase {
    "@type": "BrowserApplication";
}
interface CommunicationApplication extends SoftwareApplicationBase {
    "@type": "CommunicationApplication";
}
interface DesktopEnhancementApplication extends SoftwareApplicationBase {
    "@type": "DesktopEnhancementApplication";
}
interface EntertainmentApplication extends SoftwareApplicationBase {
    "@type": "EntertainmentApplication";
}
interface MultimediaApplication extends SoftwareApplicationBase {
    "@type": "MultimediaApplication";
}
interface HomeApplication extends SoftwareApplicationBase {
    "@type": "HomeApplication";
}
interface UtilitiesApplication extends SoftwareApplicationBase {
    "@type": "UtilitiesApplication";
}
interface ReferenceApplication extends SoftwareApplicationBase {
    "@type": "ReferenceApplication";
}
type VideoGameCoTyped = ["VideoGame", "MobileApplication"] | ["VideoGame", "WebApplication"] | ["VideoGame", "SoftwareApplication"];
type ApplicationType = "SoftwareApplication" | "MobileApplication" | "WebApplication" | "GameApplication" | "SocialNetworkingApplication" | "TravelApplication" | "ShoppingApplication" | "SportsApplication" | "LifestyleApplication" | "BusinessApplication" | "DesignApplication" | "DeveloperApplication" | "DriverApplication" | "EducationalApplication" | "HealthApplication" | "FinanceApplication" | "SecurityApplication" | "BrowserApplication" | "CommunicationApplication" | "DesktopEnhancementApplication" | "EntertainmentApplication" | "MultimediaApplication" | "HomeApplication" | "UtilitiesApplication" | "ReferenceApplication";
type SoftwareApplicationJsonLdProps = (Omit<SoftwareApplication, "@type"> | Omit<MobileApplication, "@type"> | Omit<WebApplication, "@type"> | Omit<GameApplication, "@type"> | Omit<SocialNetworkingApplication, "@type"> | Omit<TravelApplication, "@type"> | Omit<ShoppingApplication, "@type"> | Omit<SportsApplication, "@type"> | Omit<LifestyleApplication, "@type"> | Omit<BusinessApplication, "@type"> | Omit<DesignApplication, "@type"> | Omit<DeveloperApplication, "@type"> | Omit<DriverApplication, "@type"> | Omit<EducationalApplication, "@type"> | Omit<HealthApplication, "@type"> | Omit<FinanceApplication, "@type"> | Omit<SecurityApplication, "@type"> | Omit<BrowserApplication, "@type"> | Omit<CommunicationApplication, "@type"> | Omit<DesktopEnhancementApplication, "@type"> | Omit<EntertainmentApplication, "@type"> | Omit<MultimediaApplication, "@type"> | Omit<HomeApplication, "@type"> | Omit<UtilitiesApplication, "@type"> | Omit<ReferenceApplication, "@type">) & {
    type?: ApplicationType | VideoGameCoTyped;
    scriptId?: string;
    scriptKey?: string;
};

declare function SoftwareApplicationJsonLd({ type, scriptId, scriptKey, name, description, url, image, applicationCategory, applicationSubCategory, applicationSuite, operatingSystem, memoryRequirements, processorRequirements, storageRequirements, availableOnDevice, downloadUrl, installUrl, countriesSupported, countriesNotSupported, permissions, softwareVersion, releaseNotes, screenshot, featureList, offers, aggregateRating, review, author, publisher, datePublished, dateModified, contentRating, }: SoftwareApplicationJsonLdProps): react_jsx_runtime.JSX.Element;

declare function ProductJsonLd(props: ProductJsonLdProps): react_jsx_runtime.JSX.Element;

type ItemReviewedType = "Book" | "Course" | "CreativeWorkSeason" | "CreativeWorkSeries" | "Episode" | "Event" | "Game" | "HowTo" | "LocalBusiness" | "MediaObject" | "Movie" | "MusicPlaylist" | "MusicRecording" | "Organization" | "Product" | "Recipe" | "SoftwareApplication";
type ItemReviewedInput = string | ({
    name: string;
    "@type"?: ItemReviewedType;
} & Record<string, unknown>);
interface ReviewJsonLdProps {
    scriptId?: string;
    scriptKey?: string;
    author: Author;
    reviewRating: {
        "@type"?: "Rating";
        ratingValue: number | string;
        bestRating?: number | string;
        worstRating?: number | string;
    } | {
        "@type": "AggregateRating";
        ratingValue: number | string;
        bestRating?: number | string;
        worstRating?: number | string;
    };
    itemReviewed: ItemReviewedInput;
    datePublished?: string;
    reviewBody?: string;
    publisher?: Author;
    url?: string;
    mainEntityOfPage?: string | {
        "@type"?: "WebPage";
        "@id": string;
    };
}
interface AggregateRatingJsonLdProps {
    scriptId?: string;
    scriptKey?: string;
    itemReviewed: ItemReviewedInput;
    ratingValue: number | string;
    ratingCount?: number;
    reviewCount?: number;
    bestRating?: number;
    worstRating?: number;
}

declare function ReviewJsonLd({ scriptId, scriptKey, author, reviewRating, itemReviewed, datePublished, reviewBody, publisher, url, mainEntityOfPage, }: ReviewJsonLdProps): react_jsx_runtime.JSX.Element;

declare function AggregateRatingJsonLd({ scriptId, scriptKey, itemReviewed, ratingValue, ratingCount, reviewCount, bestRating, worstRating, }: AggregateRatingJsonLdProps): react_jsx_runtime.JSX.Element;

export { type Accommodation, type AggregateRating, AggregateRatingJsonLd, type AggregateRatingJsonLdProps, ArticleJsonLd, type ArticleJsonLdProps, type Author, type BedDetails, type Brand, BreadcrumbJsonLd, type BreadcrumbJsonLdProps, CarouselJsonLd, type CarouselJsonLdProps, type Certification, ClaimReviewJsonLd, type ClaimReviewJsonLdProps, type ContactPoint, CourseJsonLd, type CourseJsonLdProps, CreativeWorkJsonLd, type CreativeWorkJsonLdProps, type CreditCard, DatasetJsonLd, type DatasetJsonLdProps, type DefinedRegion, DiscussionForumPostingJsonLd, type DiscussionForumPostingJsonLdProps, EmployerAggregateRatingJsonLd, type EmployerAggregateRatingJsonLdProps, EventJsonLd, type EventJsonLdProps, FAQJsonLd, type FAQJsonLdProps, type GeoCoordinates, HowToJsonLd, type HowToJsonLdProps, ImageJsonLd, type ImageJsonLdProps, type ImageObject, type InteractionCounter, JobPostingJsonLd, type JobPostingJsonLdProps, JsonLdScript, LocalBusinessJsonLd, type LocalBusinessJsonLdProps, type LocationFeatureSpecification, type MemberProgram, type MemberProgramTier, type MerchantReturnPolicy, MerchantReturnPolicyJsonLd, type MerchantReturnPolicyJsonLdProps, type MerchantReturnPolicySeasonalOverride, MovieCarouselJsonLd, type MovieCarouselJsonLdProps, type OfferShippingDetails, type OpeningHoursSpecification, type Organization, OrganizationJsonLd, type OrganizationJsonLdProps, type PeopleAudience, type Person, type Place$2 as Place, type PostalAddress, type PriceTypeEnumeration, ProductJsonLd, type ProductJsonLdProps, ProfilePageJsonLd, type ProfilePageJsonLdProps, type QuantitativeValue, QuizJsonLd, type QuizJsonLdProps, type Rating, RecipeJsonLd, type RecipeJsonLdProps, type Review, ReviewJsonLd, type ReviewJsonLdProps, type ShippingDeliveryTime, type SimpleMonetaryAmount, type SizeSpecification, SoftwareApplicationJsonLd, type SoftwareApplicationJsonLdProps, type Thing, type ThreeDModel, type TierBenefit, type TierRequirement, type UnitPriceSpecification, VacationRentalJsonLd, type VacationRentalJsonLdProps, VideoJsonLd, type VideoJsonLdProps, type VideoObject$1 as VideoObject, processors_export as processors };
