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

import { teaserCardVariants } from "@/components/TempDesignSystem/TeaserCard/variants"

import type { ImageVaultAsset } from "@/types/components/imageVault"
import type { CardProps } from "@/components/TempDesignSystem/Card/card"
import type { TeaserCard } from "../trpc/routers/contentstack/blocks"

interface SidePeekButton {
  call_to_action_text: string
}

export interface TeaserCardProps
  extends VariantProps<typeof teaserCardVariants> {
  title: string
  description: string
  primaryButton?: CardProps["primaryButton"]
  secondaryButton?: CardProps["secondaryButton"]
  sidePeekButton?: SidePeekButton
  sidePeekContent?: TeaserCard["sidepeek_content"]
  image?: ImageVaultAsset
  className?: string
}

export interface TeaserCardSidepeekProps {
  button: SidePeekButton
  sidePeekContent: NonNullable<TeaserCard["sidepeek_content"]>
}
