import { ReactNode } from 'react'; import { IncludedFeatureItem } from '../IncludedFeatures'; import { LabelColor } from '../Label'; import { CheckoutPeriod } from '../ProductCard'; /** Program theme for the built-in branded membership icon (tints the brand mark). */ export type MembershipIconTheme = 'hormones' | 'senescence' | 'metabolic' | 'member'; /** A single row inside the membership's expandable "what's included" list. */ export type CheckoutMembershipBenefit = IncludedFeatureItem; /** * The protocol/membership card shown at the top of the order summary. Distinct from * `ProductCardProps`: it carries the program branding, a description line, and an * expandable "Included with your protocol/membership" disclosure. */ export type MembershipCardProps = { name: string; /** e.g. "HRT care built around your symptoms & health goals." */ description?: ReactNode; /** Host override for the icon. When omitted, the built-in themed brand mark is rendered. */ image?: string; /** Program theme for the built-in brand icon. Ignored when `image` is set. Defaults to 'hormones'. */ iconTheme?: MembershipIconTheme; /** Badge text — e.g. "MEMBERSHIP" (new) or "ACTIVE MEMBER" (existing member). */ badgeLabel?: string; /** Badge color — themed per program (e.g. 'lilac-gradient', 'ochre-gradient', 'black'). */ badgeColor?: LabelColor; /** e.g. "Renews quarterly". */ renewalLabel?: ReactNode; /** Price in whole currency units. Omit for an already-active membership. */ price?: number; period?: CheckoutPeriod; /** Expandable disclosure: "Included with your membership" → benefit list. */ included?: { /** Collapsed label. Defaults to "Included with your membership". */ label?: ReactNode; /** Header shown when the disclosure is open, e.g. "Included with your membership". */ openLabel?: ReactNode; items: CheckoutMembershipBenefit[]; }; /** Start the disclosure open. Defaults to collapsed. */ defaultOpen?: boolean; }; export declare const MembershipCard: ({ name, description, image, iconTheme, badgeLabel, badgeColor, renewalLabel, price, period, included, defaultOpen, }: MembershipCardProps) => import("react").JSX.Element;