sanity-plugin-seo
Version:
Complete SEO toolkit for Sanity Studio with live scoring, AI suggestions, team workflows, and 30+ structured data types. Free and AI tiers live. Pro coming soon.
169 lines (156 loc) • 3.79 kB
TypeScript
import { Image as Image_2 } from "sanity";
import { it as it_2 } from "sanity/lib/_chunks-dts/ActiveWorkspaceMatcherContext";
import { default as React_2 } from "react";
export declare interface AIConfig {
provider: "openai" | "anthropic" | "groq";
apiKey: string;
model?: string;
}
export declare interface AutomationConfig {
autoCanonical?: boolean;
autoOgImage?: boolean;
autoAltText?: boolean;
autoDescription?: boolean;
}
export declare type HreflangEntry = {
locale: string;
url: string;
};
export declare interface PluginConfig {
proFeature?: string;
aiFeature?: AIConfig;
bodyField?: string;
slugField?: string;
defaultFetchType?: string;
dashboard?: boolean;
automation?: AutomationConfig;
workflow?: WorkflowConfig;
documentTypes?: string[];
}
export declare type Schema = Seo;
export declare type SchemaOrgData = {
schemaType?: string;
name?: string;
description?: string;
url?: string;
image?: string;
datePublished?: string;
dateModified?: string;
author?: string;
price?: string;
priceCurrency?: string;
availability?: string;
ratingValue?: string;
ratingCount?: string;
startDate?: string;
endDate?: string;
location?: string;
faqItems?: Array<{
question: string;
answer: string;
}>;
};
export declare type Seo = {
type: string;
nofollowAttributes?: boolean;
robotsMeta?: string[];
metaTitle?: string;
metaDescription?: string;
metaImage?: Image_2;
focusKeyword?: string;
seoKeywords?: Array<{
type?: string;
}>;
hreflang?: HreflangEntry[];
schemaOrg?: SchemaOrgData;
openGraph?: {
image?: Image_2;
title?: string;
description?: string;
siteName?: string;
};
additionalMetaTags?: Array<{
type?: string;
metaAttributes?: Array<{
type?: string;
attributeKey?: string;
attributeType?: string;
attributeValueImage?: Image_2;
attributeValueString?: string;
}>;
}>;
twitter?: {
cardType?: string;
creator?: string;
site?: string;
handle?: string;
};
seoStatus?: "draft" | "review" | "approved";
seoReviewNotes?: string;
};
export declare function SEODashboardPane(): React_2.JSX.Element;
/** Shape of the seo object returned by a GROQ query — use in your frontend project */
export declare interface SeoData {
metaTitle?: string;
metaDescription?: string;
nofollowAttributes?: boolean;
robotsMeta?: string[];
focusKeyword?: string;
seoKeywords?: string[];
metaImage?: {
asset?: {
url?: string;
};
};
openGraph?: {
title?: string;
description?: string;
siteName?: string;
image?: {
asset?: {
url?: string;
};
};
};
twitter?: {
cardType?: string;
site?: string;
creator?: string;
handle?: string;
};
hreflang?: {
locale: string;
url: string;
}[];
schemaOrg?: {
schemaType?: string;
name?: string;
description?: string;
url?: string;
author?: string;
datePublished?: string;
dateModified?: string;
price?: string;
priceCurrency?: string;
availability?: string;
ratingValue?: string;
ratingCount?: string;
startDate?: string;
endDate?: string;
location?: string;
faqItems?: {
question: string;
answer: string;
}[];
};
seoStatus?: "draft" | "review" | "approved";
seoReviewNotes?: string;
}
declare const seoMetaFields: it_2<PluginConfig | undefined>;
export default seoMetaFields;
export { seoMetaFields };
export declare interface WorkflowConfig {
requireSeoApproval?: boolean;
reviewers?: string[];
}
export {};