import { type ComponentPropsWithoutRef, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; declare const rootVariants: (props?: ({ density?: "comfortable" | "compact" | null | undefined; surface?: "elevated" | "flat" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface OperatorHeroBadge { /** Display key — i18n is up to the consumer. */ key: string; /** Display label. */ label: string; /** Badge variant — falls back to `neutral`. */ variant?: 'neutral' | 'info' | 'success' | 'warning' | 'error'; } export interface OperatorHeroRating { /** Mean rating, 0–5. */ value: number; /** Total number of reviews. */ count: number; } export interface OperatorHeroHandle { getName: () => string; /** Structural flag — whether a calendar-colour dot is rendered. No PHI. */ getHasColor: () => boolean; } export interface OperatorHeroProps extends Omit, 'aria-label' | 'children'> { /** Operator's display name. Rendered as the H1 heading. */ name: string; /** * Optional calendar-colour identity for the operator. AlfaDocs assigns each * operator a numeric colour id; when present, a small colour dot is rendered * next to the name, tinted via `colorIdToToken(colorId)` (a `var(--…)` palette * token — never a literal). The id itself is a structural identifier, not PHI. */ colorId?: string; /** Specialty / tagline subtitle (e.g. "Dermatologa · 12 anni di esperienza"). */ tagline?: string; /** * Optional photo / avatar URL. The kit always renders an `` — * when `imageUrl` is missing the avatar falls back to initials. */ imageUrl?: string; /** * Text alternative for the photo's ``, for image search and crawlers. * Pass the professional's name. Leave it out and the photo stays decorative * (`alt=""`), as before. Added in 1.91.0. */ imageAlt?: string; /** Rating summary — when present, renders a Rating + numeric breakdown line. */ rating?: OperatorHeroRating; /** * Optional badge row beneath the rating. Use sparingly — 1–3 chips * suit the hero's density; longer lists belong in ``. */ badges?: OperatorHeroBadge[]; /** * At the inline-end of the name row when the content column is 480px * or wider; on its own line above the name, at the inline-start, when * narrower. Use for a "Book with this operator" `