import type { TFunction } from 'i18next'; import { type TextField } from './anamnesis-derive'; import type { OpenAnamnesisNote, Visit } from './anamnesis-types'; /** One free-text note recorded at a visit. */ export interface VisitNote { field: TextField; text: string; } /** The visit's notes, blank ones dropped. Whitespace-only text is not a note — * an empty string would otherwise open a popover onto nothing. */ export declare function visitNotes(visit: Visit): VisitNote[]; /** Whether this visit has anything to read. Drives the trigger's existence. */ export declare function hasVisitNotes(visit: Visit): boolean; /** One visit's notes as a term↔detail list, under the same labels the compile * form uses. Exported so a HOST side panel renders the note the same way the * in-place fallback does — one definition of what a note looks like. */ export declare function AnamnesisVisitNoteList({ visit, t, }: { visit: Visit; t: TFunction; }): import("react/jsx-runtime").JSX.Element; export interface AnamnesisVisitNoteProps { visit: Visit; t: TFunction; /** Render already open. Chromatic never runs play functions, so the story * that snapshots the note has to mount it open. Ignored when `onOpenNote` * is wired — the host owns the panel and its open state. */ defaultOpen?: boolean; /** The host's side panel. Supplied ⇒ the trigger routes there instead of * opening a popover; omitted ⇒ it opens the note in place. Wiring it obliges * the host to render a panel AND to move focus to or announce the addressed * note — see `OpenAnamnesisNote`. */ onOpenNote?: OpenAnamnesisNote; } export declare function AnamnesisVisitNote({ visit, t, defaultOpen, onOpenNote, }: AnamnesisVisitNoteProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=anamnesis-visit-note.d.ts.map