import { type HTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; declare const rootVariants: (props?: ({ surface?: "elevated" | "flat" | "bare" | null | undefined; density?: "comfortable" | "compact" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface AnamnesisSummaryAnswer { /** Stable key (the intake field key). */ id: string; /** Question label, already translated by the consumer. */ label: string; /** Formatted answer. Strings preferred; ReactNode allowed. */ value: ReactNode; /** Unit symbol rendered muted after the value (e.g. "kg"). */ unit?: string; /** The practice's highlight rule fired for this answer. */ highlighted?: boolean; /** * When the answer was recorded — `YYYY-MM-DD`, `YYYY-MM-DDTHH:mm` (LOCAL * wall time, no zone) or full ISO-8601. A bare date is never read as UTC. */ reportedAtIso?: string; /** Where the answer came from when the card combines modules (module name). */ sourceLabel?: string; } export interface AnamnesisSummarySection { id: string; heading: string; answers: AnamnesisSummaryAnswer[]; } export interface AnamnesisSummaryCardHandle { /** Structural snapshot only — counts, never labels or values. */ getSummary: () => { id?: string; sectionCount: number; answerCount: number; highlightedCount: number; unansweredCount: number; }; } export interface AnamnesisSummaryCardProps extends Omit, 'title'> { sections: AnamnesisSummarySection[]; /** Card title (e.g. the module name). Falls back to the "Anamnesis summary" region label. */ title?: string; /** Muted line under the title (e.g. the interview date-time, already formatted). */ subtitle?: string; /** Questions the consumer omitted because they were unanswered — one muted footer line when > 0. */ unansweredCount?: number; /** BCP-47 tag for the tooltip date; defaults to the active i18next language. */ locale?: string; /** Highlighted answers sort to the top of their section. Default `true`. */ highlightedFirst?: boolean; /** * Open the card with a "Highlighted answers" group collecting every * flagged answer, each with where and when it was recorded, before the * sections. Default `true`; absent when nothing is flagged. */ highlightedGroup?: boolean; /** * Render ONLY the highlighted-answers group — no sections, no unanswered * footer — for a card whose sole job is the flagged answers. Empty copy * when nothing is flagged. Default `false`. */ highlightedOnly?: boolean; /** `'elevated'` (default) — Card with shadow; `'flat'` — outlined Card. */ surface?: 'flat' | 'elevated' | 'bare'; /** `'comfortable'` (default) or `'compact'` (tighter row gap + paddings). */ density?: 'comfortable' | 'compact'; /** Render the skeleton loading placeholder. */ loading?: boolean; /** Rendered at the inline-end of the heading row (e.g. an action menu). */ actionSlot?: ReactNode; /** Agent-readiness consumer id, surfaced as `data-component-id`. */ id?: string; } export declare const AnamnesisSummaryCard: import("react").ForwardRefExoticComponent>; /** Variant unions re-exported for downstream typing. */ export type AnamnesisSummaryCardSurface = NonNullable['surface']>; export type AnamnesisSummaryCardDensity = NonNullable['density']>; export {}; //# sourceMappingURL=anamnesis-summary-card.d.ts.map