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

import type { AlertTypeEnum } from "@/types/enums/alert"
import type { SidepeekContent } from "@/types/trpc/routers/contentstack/siteConfig"
import type { alertVariants } from "./variants"

export interface AlertProps extends VariantProps<typeof alertVariants> {
  className?: string
  type: AlertTypeEnum
  heading?: string | null
  text?: string | null
  phoneContact?: {
    displayText: string
    phoneNumber?: string
    footnote?: string | null
  } | null
  sidepeekContent?: SidepeekContent | null
  sidepeekCtaText?: string | null
  link?: {
    url: string
    title: string
    keepSearchParams?: boolean
  } | null
  close?: () => void
  ariaRole?: AriaRole
  ariaLive?: "off" | "assertive" | "polite"
}
