import { ButtonProps } from "@shared/contentful"; export interface Asset { url?: string | null; title?: string | null; description?: string | null; contentType?: string | null; width?: number | null; height?: number | null; } export interface Button { anchorId?: string | null; showButtonAs?: | "solid" | "text" | "button-with-icon" | "text-with-icon" | null; buttonLabel: string; // required in your model buttonPrefix?: string | null; href?: string | null; target?: "_blank" | "_self" | null; badge?: string | null; preserveQueryParameters: boolean; // non-null in your model badgeIcon?: Asset | null; buttonVariant?: "primary_brand" | "primary_inverse" | "secondary" | null; buttonIconName?: string | null; buttonIconPosition?: "left" | "right" | null; clickToOpen?: "accordion" | "modal" | "tab" | null; tabmodalNameToOpen?: string | null; preDefinedFunctionExecution?: "check availability" | null; } export interface ButtonGroup { __typename: "ComponentButtonGroup"; anchorId?: string | null; title?: string | null; itemsCollection?: { items: Button[]; }; } export interface Card { anchorId?: string; title?: string; body?: { json: any; // Contentful Rich Text }; image?: Asset; imageLink?: string; imageAlignment?: "Left" | "Right" | "Center" | string; imageView?: "Full" | "Inset" | string; cta?: Button; ctaAlignment?: "Left" | "Right" | "Center" | string; textColor?: string; backgroundColor?: string; showBackgroundImage?: boolean; pinwheelColor?: "blue" | "green" | "navy" | "purple" | "white" | "yellow"; iconToRichTextAlignment?: string; phoneNumber?: string; workingHours?: string; titleLocation?: "Top" | "Bottom" | string; ctaBottom?: Button; ctaAlignmentBottom?: "Left" | "Right" | "Center" | string; imageFloatingType?: boolean; } export interface VideoLink { image?: Asset; videoPopup?: boolean; link?: string; } export interface Checklist { list?: { items: { checkListTitle?: { json: any }; icon?: Asset; anchorId?: string; }[]; }; } export interface RichTextItem { title?: string; isTargetBlank?: boolean; richText?: { json: any }; } export type CheckPlansProps = { className?: string; title?: string; ctaAlignment?: "new-row" | "same-row"; ctaText?: string; buttonVariant?: "primary_brand" | "secondary" | "primary_inverse"; showButtonAs?: | "solid" | "unstyled" | "text" | "button-with-icon" | "text-with-icon" | undefined; cta?: ButtonProps; speedCardConfig?: { isModalOpen?: boolean; setModalOpen?: () => void; speed?: string; techType?: string; isMax?: boolean; }; };