import type SharedEmphasiseArticle from "./shared/emphasiseArticle";
import type SharedList from "./shared/list";
import type DynamicZoneColumnImageText from "./dynamic-zone/columnImageText";
import type DynamicZoneDualColumnText from "./dynamic-zone/dualColumnText";
import type DynamicZoneFullImage from "./dynamic-zone/fullImage";
import type DynamicZoneFullText from "./dynamic-zone/fullText";
import type DynamicZoneGallery from "./dynamic-zone/gallery";
import type DynamicZoneFileDownload from "./dynamic-zone/fileDownload";
import type DynamicZoneEmbedding from "./dynamic-zone/embedding";
import type DynamicZoneSection from "./dynamic-zone/section";
import type DynamicZoneSpacer from "./dynamic-zone/spacer";
import type DynamicZoneFileViewer from "./dynamic-zone/fileViewer";

export default interface BaseComponent {
  __component: ComponentNames;
  id: number;
}

export type ComponentNames =
  | "shared.list"
  | "shared.emphasise-article"
  | "dynamic-zone.section"
  | "dynamic-zone.spacer"
  | "dynamic-zone.gallery"
  | "dynamic-zone.full-text"
  | "dynamic-zone.full-image"
  | "dynamic-zone.dual-column-text"
  | "dynamic-zone.column-image-text"
  | "dynamic-zone.file-viewer"
  | "dynamic-zone.file-download"
  | "dynamic-zone.embedding";

export type ComponentTypes =
  | SharedList
  | SharedEmphasiseArticle
  | DynamicZoneSection
  | DynamicZoneSpacer
  | DynamicZoneGallery
  | DynamicZoneFullText
  | DynamicZoneFullImage
  | DynamicZoneDualColumnText
  | DynamicZoneColumnImageText
  | DynamicZoneFileViewer
  | DynamicZoneFileDownload
  | DynamicZoneEmbedding;
