import { type ReactNode } from 'react'; import type { TFunction } from 'i18next'; import { type PracticeAnamnesisConfig } from './anamnesis-config'; import { type MissingAnswer } from './anamnesis-digest'; import type { DisclosureAudience } from './anamnesis-disclosure'; import type { AnamnesisExportTab } from './anamnesis-export'; import type { AnamnesisRecord, OpenAnamnesisNote, PractitionerOption } from './anamnesis-types'; /** The three Diagnosis views. Also the three export tabs — one vocabulary. */ export type AnamnesisCompileView = AnamnesisExportTab; export interface AnamnesisCompileProps { record: AnamnesisRecord; t: TFunction; /** Mount flush inside a host section tab (drops the full-page chrome + the * patient-name page heading — the host shows the patient banner). */ embedded?: boolean; /** The practice's configured vocabulary. Omitted = the kit-seeded default. */ config?: PracticeAnamnesisConfig; /** A per-patient target was set or cleared (`null` clears it). The surface * applies it to its own working record either way; this is the seam a * platform host persists through — and the one place a shared target could * be reconciled with the care plan, which no story can do. */ onTargetChange?: (parameterKey: string, target: number | null) => void; /** Host status chips rendered at the surface header's end — the slot a * platform host uses to fold its OWN record state (signature status, * expiry, save feedback, a renew affordance) into the section instead of * bolting a second bar above it. Content is host-owned and already * translated. The surface itself claims no save state. */ statusSlot?: ReactNode; /** Omit the nutrition-targets strip above the record card — for hosts * that present the record without the goals (the isolated single-section * demo). Default false: the strip renders. Target editors inside the * record blocks are unaffected. */ hideTargetStrip?: boolean; /** Draw the evolution view as one table per anamnesis type (visits * grouped by `sourceLabel`). Default false: one grid over every visit. */ partitionBySource?: boolean; /** Route the missing-answer jump to a host questionnaire surface instead * of the internal Compila gaps block (e.g. the platform island's fill * view). Receives the missing answer the user asked to fix. */ onMissingAnswerJump?: (missing: MissingAnswer) => void; /** Every edit to the working record (visit fields, pathologies, therapy, * events, targets) — the persistence seam for hosts that store visit * data. Fires AFTER the change lands in state, with the full record; * hosts debounce and diff. NOT called for the initial mount. */ onRecordChange?: (record: AnamnesisRecord) => void; /** The practice's operators, offered in the visit's Practitioner select. * Host-supplied because the roster is live platform data, not practice * vocabulary — it must never be written into the saved config. Omitted or * empty leaves a free-text input, so kit mounts without a roster keep * working. */ practitioners?: PractitionerOption[]; /** The calendar date (ISO) a NEW follow-up visit is created on. A host * passes its "today"; defaults to the latest visit's date so kit demos * and tests stay deterministic (the surface deliberately never reads the * wall clock). The date field is editable either way. */ newVisitDateIso?: string; /** The host's side panel, forwarded to the Evolution view. Omitted = the * evolution surface reads notes in place. */ onOpenNote?: OpenAnamnesisNote; /** Mount on this view instead of Summary. Demo/story hook only — Chromatic * skips play functions, so a click-selected tab is never snapshotted. */ defaultView?: AnamnesisCompileView; /** Mount with the export menu open. Demo/story hook only — Chromatic skips * play functions, so a click-opened menu is never snapshotted. */ defaultExportMenuOpen?: boolean; /** Mount with the share preview open. Demo/story hook, same reason. */ defaultShareOpen?: boolean; /** Mount the export control on this audience. Demo/story hook. */ defaultExportAudience?: DisclosureAudience; } export declare function AnamnesisCompile({ record: initial, t, embedded, config, onTargetChange, hideTargetStrip, partitionBySource, statusSlot, onOpenNote, onMissingAnswerJump, onRecordChange, practitioners, newVisitDateIso, defaultView, defaultExportMenuOpen, defaultShareOpen, defaultExportAudience, }: AnamnesisCompileProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=anamnesis-compile.d.ts.map