next-seo
Version:
SEO plugin for Next.js projects
392 lines (391 loc) • 10.7 kB
TypeScript
export declare type OpeningHoursSpecification = {
opens: string;
closes: string;
dayOfWeek: string | string[];
validFrom?: string;
validThrough?: string;
};
export declare type Offer = {
priceSpecification: PriceSpecification;
itemOffered: Service;
};
export declare type PriceSpecification = {
type: string;
priceCurrency: string;
price: string;
};
export declare type Service = {
name: string;
description: string;
};
export declare type Geo = {
latitude: string;
longitude: string;
};
export declare type GeoCircle = {
geoMidpoint: Geo;
geoRadius: string;
};
export declare type Action = {
actionName: string;
actionType: string;
target: string;
};
export declare type Step = {
type: string;
name: string;
url?: string;
itemListElement?: StepDetails[];
image?: string;
};
export declare type StepDetails = {
type: 'HowToTip' | 'HowToDirection';
text: string;
};
export interface Person {
name: string;
}
export interface Answer {
text: string;
dateCreated?: string;
upvoteCount?: number;
url?: string;
author?: Person;
}
export interface Question {
name: string;
answerCount: number;
acceptedAnswer?: Answer;
suggestedAnswer?: Answer[];
text?: string;
author?: Person;
upvoteCount?: number;
dateCreated?: string;
}
export interface Instruction {
name?: string;
text: string;
url?: string;
image?: string;
}
export interface Performer {
type?: 'Person' | 'PerformingGroup';
name: string;
}
export interface Place {
name: string;
address: Address;
sameAs?: string;
}
export interface VirtualLocation {
name?: string;
sameAs?: string;
url: string;
}
export declare type Location = string | Place | VirtualLocation;
export declare type EventStatus = 'EventCancelled' | 'EventMovedOnline' | 'EventPostponed' | 'EventRescheduled' | 'EventScheduled';
export declare type EventAttendanceMode = 'MixedEventAttendanceMode' | 'OfflineEventAttendanceMode' | 'OnlineEventAttendanceMode';
export interface Organizer {
type: 'Person' | 'Organization';
name: string;
url: string;
}
export interface ContactPoint {
contactType: string;
telephone: string;
email?: string;
areaServed?: string | string[];
availableLanguage?: string | string[];
contactOption?: string | string[];
}
export interface CreativeWork {
author: string;
about: string;
name: string;
datePublished: string;
audience?: string;
keywords?: string;
thumbnailUrl?: string;
image?: string;
}
export interface Producer {
name: string;
url?: string;
}
export interface Question {
questionName: string;
acceptedAnswerText: string;
}
export interface Provider {
type?: 'Organization' | 'Person';
name: string;
url?: string;
}
export interface ItemListElements {
item: string;
name: string;
position: number;
}
export interface OpenGraphMedia {
url: string;
width?: number | null;
height?: number | null;
alt?: string;
type?: string;
secureUrl?: string;
}
export declare type Address = string | {
streetAddress: string;
addressLocality: string;
addressRegion?: string;
postalCode: string;
addressCountry: string;
};
export interface Video {
name: string;
description: string;
thumbnailUrls: string[];
uploadDate: string;
contentUrl?: string;
duration?: string;
embedUrl?: string;
expires?: string;
hasPart?: Clip | Clip[];
watchCount?: number;
publication?: BroadcastEvent | BroadcastEvent[];
regionsAllowed?: string | string[];
}
export interface Clip {
name: string;
startOffset: number;
url: string;
}
export interface BroadcastEvent {
name?: string;
isLiveBroadcast: boolean;
startDate: string;
endDate: string;
}
export declare type Offers = {
price: string;
priceCurrency: string;
priceValidUntil?: string;
itemCondition?: string;
availability?: string;
url?: string;
seller: {
name: string;
};
validFrom?: string;
};
export declare type AggregateOffer = {
priceCurrency: string;
lowPrice: string;
highPrice?: string;
offerCount?: string;
offers?: Offers | Offers[];
};
export interface OpenGraphVideoActors {
profile: string;
role?: string;
}
export interface OpenGraph {
url?: string;
type?: string;
title?: string;
description?: string;
images?: ReadonlyArray<OpenGraphMedia>;
videos?: ReadonlyArray<OpenGraphMedia>;
audio?: ReadonlyArray<OpenGraphMedia>;
defaultImageHeight?: number;
defaultImageWidth?: number;
locale?: string;
siteName?: string;
/**
* @deprecated use siteName instead. site_name will be removed in the next major version
*/
site_name?: string;
profile?: OpenGraphProfile;
book?: OpenGraphBook;
article?: OpenGraphArticle;
video?: OpenGraphVideo;
}
export interface OpenGraphProfile {
firstName?: string;
lastName?: string;
username?: string;
gender?: string;
}
export interface OpenGraphBook {
authors?: ReadonlyArray<string>;
isbn?: string;
releaseDate?: string;
tags?: ReadonlyArray<string>;
}
export interface OpenGraphArticle {
publishedTime?: string;
modifiedTime?: string;
expirationTime?: string;
authors?: ReadonlyArray<string>;
section?: string;
tags?: ReadonlyArray<string>;
}
export interface OpenGraphVideo {
actors?: ReadonlyArray<OpenGraphVideoActors>;
directors?: ReadonlyArray<string>;
writers?: ReadonlyArray<string>;
duration?: number;
releaseDate?: string;
tags?: ReadonlyArray<string>;
series?: string;
}
export interface OpenGraphAudio {
audio?: string;
url?: string;
secureUrl?: string;
type?: string;
}
export interface Twitter {
handle?: string;
site?: string;
cardType?: string;
}
interface MobileAlternate {
media: string;
href: string;
}
interface LanguageAlternate {
hrefLang: string;
href: string;
}
interface LinkTag {
rel: string;
href: string;
sizes?: string;
media?: string;
type?: string;
color?: string;
keyOverride?: string;
as?: string;
crossOrigin?: string;
}
export interface BaseMetaTag {
content: string;
keyOverride?: string;
}
export interface HTML5MetaTag extends BaseMetaTag {
name: string;
property?: undefined;
httpEquiv?: undefined;
}
export interface RDFaMetaTag extends BaseMetaTag {
property: string;
name?: undefined;
httpEquiv?: undefined;
}
export interface HTTPEquivMetaTag extends BaseMetaTag {
httpEquiv: 'content-security-policy' | 'content-type' | 'default-style' | 'x-ua-compatible' | 'refresh';
name?: undefined;
property?: undefined;
}
export declare type MetaTag = HTML5MetaTag | RDFaMetaTag | HTTPEquivMetaTag;
export declare type ImagePrevSize = 'none' | 'standard' | 'large';
export declare type AggregateRating = {
ratingValue: string;
reviewCount?: string;
ratingCount?: string;
bestRating?: string;
};
export declare type GamePlayMode = 'CoOp' | 'MultiPlayer' | 'SinglePlayer';
export declare type Review = {
author: string;
datePublished?: string;
reviewBody?: string;
name?: string;
publisher?: Publisher;
reviewRating: ReviewRating;
};
export declare type ReviewRating = {
bestRating?: string;
ratingValue: string;
worstRating?: string;
};
export declare type Author = {
type: string;
name: string;
};
export declare type ArticleAuthor = {
name: string;
url?: string;
type?: 'Person' | 'Organization';
};
export declare type Publisher = {
type: string;
name: string;
};
export declare type ReviewedBy = {
type?: string;
name: string;
};
export declare type ApplicationCategory = 'Game' | 'SocialNetworking' | 'Travel' | 'Shopping' | 'Sports' | 'Lifestyle' | 'Business' | 'Design' | 'Developer' | 'Driver' | 'Educational' | 'Health' | 'Finance' | 'Security' | 'Browser' | 'Communication' | 'DesktopEnhancement' | 'Entertainment' | 'Multimedia' | 'Home' | 'Utilities' | 'Reference';
export declare type OrganizationCategory = 'Airline' | 'Consortium' | 'Corporation' | 'EducationalOrganization' | 'FundingScheme' | 'GovernmentOrganization' | 'LibrarySystem' | 'LocalBusiness' | 'MedicalOrganization' | 'NGO' | 'NewsMediaOrganization' | 'PerformingGroup' | 'Project' | 'ResearchOrganization' | 'SportsOrganization' | 'WorkersUnion' | 'Organization';
export interface AdditionalRobotsProps {
nosnippet?: boolean;
maxSnippet?: number;
maxImagePreview?: ImagePrevSize;
maxVideoPreview?: number;
noarchive?: boolean;
unavailableAfter?: string;
noimageindex?: boolean;
notranslate?: boolean;
}
export interface NextSeoProps {
title?: string;
titleTemplate?: string;
defaultTitle?: string;
themeColor?: string;
noindex?: boolean;
nofollow?: boolean;
robotsProps?: AdditionalRobotsProps;
description?: string;
canonical?: string;
mobileAlternate?: MobileAlternate;
languageAlternates?: ReadonlyArray<LanguageAlternate>;
openGraph?: OpenGraph;
facebook?: {
appId: string;
};
twitter?: Twitter;
additionalMetaTags?: ReadonlyArray<MetaTag>;
additionalLinkTags?: ReadonlyArray<LinkTag>;
children?: never;
useAppDir?: boolean;
}
export interface DefaultSeoProps {
dangerouslySetAllPagesToNoIndex?: boolean;
dangerouslySetAllPagesToNoFollow?: boolean;
defaultOpenGraphImageWidth?: number;
defaultOpenGraphImageHeight?: number;
defaultOpenGraphVideoWidth?: number;
defaultOpenGraphVideoHeight?: number;
title?: string;
titleTemplate?: string;
themeColor?: string;
defaultTitle?: string;
robotsProps?: AdditionalRobotsProps;
description?: string;
canonical?: string;
mobileAlternate?: MobileAlternate;
languageAlternates?: ReadonlyArray<LanguageAlternate>;
openGraph?: OpenGraph;
facebook?: {
appId: string;
};
twitter?: Twitter;
additionalMetaTags?: ReadonlyArray<MetaTag>;
additionalLinkTags?: ReadonlyArray<LinkTag>;
children?: never;
}
export interface BuildTagsParams extends DefaultSeoProps, NextSeoProps {
}
export {};