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 {};
