import type { VariantProps } from "class-variance-authority"

import type { ImageVaultAsset } from "@/types/components/imageVault"
import type { CardProps } from "@/components/TempDesignSystem/Card/card"
import type { cardVariants } from "@/components/TempDesignSystem/Card/variants"

type CardTheme = Exclude<
  NonNullable<VariantProps<typeof cardVariants>["theme"]>,
  "image"
>

export const INFO_CARD_THEMES = [
  "one",
  "two",
  "three",
  "primaryInverted",
  "primaryStrong",
] as const satisfies readonly CardTheme[]

export interface InfoCardProps {
  scriptedTopTitle?: string
  heading: string
  bodyText: string
  image?: ImageVaultAsset
  imagePosition?: "left" | "right"
  primaryButton?: CardProps["primaryButton"]
  secondaryButton?: CardProps["secondaryButton"]
  theme?: CardTheme
  className?: string
}
