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

import type { ApiImage } from "@/types/components/image"
import type { ImageVaultAsset } from "@/types/components/imageVault"
import type { cardVariants } from "./variants"

export interface CardProps
  extends React.HTMLAttributes<HTMLDivElement>,
    VariantProps<typeof cardVariants> {
  primaryButton?: {
    href: string
    title: string
    openInNewTab?: boolean
    isExternal?: boolean
    scrollOnClick?: boolean
  } | null
  secondaryButton?: {
    href: string
    title: string
    openInNewTab?: boolean
    isExternal?: boolean
    scrollOnClick?: boolean
  } | null
  scriptedTopTitle?: string | null
  heading?: string | null
  bodyText?: string | null
  imageGradient?: boolean
  onPrimaryButtonClick?: () => void
  onSecondaryButtonClick?: () => void
  backgroundImage?: ImageVaultAsset | ApiImage
}
