import type { TFunction } from 'i18next'; import { type SparklineAnnotation } from '../../components/sparkline'; import { type DeltaInfo, type RangeFlag } from './anamnesis-derive'; import type { NumericParameterDef } from './anamnesis-types'; export interface DeltaIndicatorProps { /** The derived change vs the previous visit; `null` renders nothing (first * visit has no delta — never render a broken arrow). */ delta: DeltaInfo | null; def: NumericParameterDef; t: TFunction; } /** Arrow + signed change vs the previous visit, coloured by whether the change * is an improvement for THIS parameter. */ export declare function DeltaIndicator({ delta, def, t }: DeltaIndicatorProps): import("react/jsx-runtime").JSX.Element | null; export interface OriginMarkerProps { t: TFunction; } /** "From patient" badge shown against a value the patient submitted and the * clinician has not yet confirmed or edited. Uses the info family (calm, * informational — distinct from the clinical status colours). */ export declare function OriginMarker({ t }: OriginMarkerProps): import("react/jsx-runtime").JSX.Element; export interface OutOfRangeBadgeProps { flag: RangeFlag; t: TFunction; /** Icon-only chip for dense grid cells; otherwise shows a short label. */ compact?: boolean; } /** H/L flag for a lab value outside its reference range. Warning tone + * direction glyph + colour-blind dot; the accessible name says above/below. */ export declare function OutOfRangeBadge({ flag, t, compact, }: OutOfRangeBadgeProps): import("react/jsx-runtime").JSX.Element | null; export interface TrendSparklineProps { /** ONE ENTRY PER RECORD VISIT, in visit order. `null` is a visit where this * parameter was not measured, and it HOLDS its place on the x extent — * that is what keeps a lab drawn four times over a thirteen-visit history * on the same x scale as a weight drawn thirteen times, so an event * annotation lands on the same date in both. */ series: (number | null)[]; def: NumericParameterDef; t: TFunction; /** Event reference lines. The SAME array is handed to every row, so one * event is one vertical line down the whole grid. */ annotations?: readonly SparklineAnnotation[]; /** Make those lines pointer-selectable. Supplied ⇒ pressing one does what * pressing its chip in the bar above does. The chip bar is the keyboard * route and stays the only one — the lines live inside a `role="img"`. */ onSelectAnnotation?: (eventId: string) => void; } /** Compact inline trend across all visits, tinted by the overall valence * (first → last measurement) for the parameter. Reduced motion is honoured by * Sparkline internally. Renders nothing below two measurements (no trend to * draw) — the gaps do not count towards that. Always as wide as its cell: * the event lines are drawn over the cell, so a narrower plot would put them * beside the measurements they mark rather than on them. */ export declare function TrendSparkline({ series, def, t, annotations, onSelectAnnotation, }: TrendSparklineProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=anamnesis-indicators.d.ts.map