import { type HTMLAttributes } from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type CarePlanEntryCardProps } from '../care-plan-entry-card'; import { entitySurfaceVariants, type CarePlanState } from '../_shared/entity-card'; /** * A single treatment line within the plan. Each ref is forwarded straight * to a `` rendered inside the Accordion. `entryId` keys * the row and surfaces as the line's `data-component-id`. */ export interface CarePlanEntryRef extends Omit { /** Stable line id — identifier only, never PHI. */ entryId: string; } /** Financial figures for the plan, all amounts in integer cents. */ export interface CarePlanAmounts { /** Full list price in cents (non-negative). */ priceCents?: number; /** Discounted / agreed price in cents (non-negative). */ discountedPriceCents?: number; /** Amount already invoiced in cents (non-negative). */ billedAmountCents?: number; /** Outstanding amount still due in cents (non-negative). */ dueCents?: number; /** How many days the due amount is overdue (non-negative). */ overdueDays?: number; } /** Phase / line progress for the plan. */ export interface CarePlanProgress { /** Number of executed / completed lines. */ done: number; /** Total number of lines. */ total: number; } /** Lifecycle dates for the plan, all ISO-8601 strings. */ export interface CarePlanDates { /** When the plan was accepted. */ acceptedIso?: string; /** When the plan was closed. */ closedIso?: string; /** When the plan was discarded / rejected. */ discardedIso?: string; } /** Curated read-only handle exposed to the agent registry. */ export interface CarePlanCardHandle { /** The plan's lifecycle state. */ getState: () => CarePlanState; /** Line progress as `{ done, total }` — counts only, no PHI. */ getProgress: () => { done: number; total: number; }; } export interface CarePlanCardProps extends Omit, 'aria-label' | 'title' | 'children'> { /** * Stable instance id — surfaced as `data-component-id` for the agent * registry and mirrored to the DOM `id`; also wires the heading ↔ region * relationship. */ id?: string; /** Plan number (e.g. estimate number). Rendered beside the name. */ number: string | number; /** Plan name / title. Rendered as the card heading. */ name?: string; /** Lifecycle state — drives a localised Badge label. */ state: CarePlanState; /** Optional deep link to the full plan. Guarded by `isSafeEntityUrl`. */ url?: string; /** Financial figures (billed / due / overdue …). */ amounts?: CarePlanAmounts; /** Line progress (done / total). */ progress?: CarePlanProgress; /** Lifecycle dates (accepted / closed / discarded). */ dates?: CarePlanDates; /** Reason the plan was discarded — shown only when `state === 'discarded'`. */ discardReason?: string; /** * Dentition the plan applies to — forwarded to each entry card's tooth * display where relevant. Structural only. */ dentitionMode?: 'permanent' | 'deciduous'; /** Treatment lines — rendered as `` rows in an Accordion. */ entries?: CarePlanEntryRef[]; /** BCP 47 locale override for dates / currency. Defaults to i18n.language. */ locale?: string; /** ISO 4217 currency code for the money chips. Defaults to `EUR`. */ currency?: string; /** * `elevated` (default) paints the kit card chrome; `flat` drops it for use * inside an existing Card / Sheet. */ surface?: 'flat' | 'elevated'; /** Fires when the plan deep link / heading is activated. */ onActivate?: () => void; /** Accessible label override for the plan region. */ 'aria-label'?: string; } export declare const CarePlanCard: import("react").ForwardRefExoticComponent>; export type CarePlanCardSurface = NonNullable['surface']>; /** The dentition the plan applies to. */ export type CarePlanCardDentition = NonNullable; export type { CarePlanState } from '../_shared/entity-card'; //# sourceMappingURL=care-plan-card.d.ts.map