import { type VariantProps } from 'class-variance-authority'; import { type InsertPayload, type InsertVariant, type InsertMode } from '../_shared/insert-result'; import type { Plurality } from '../_shared/obstetrics'; import { type WeightGainResult } from './weight-gain'; declare const rootVariants: (props?: ({ width?: "auto" | "full" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * Canonical metric snapshot of the four inputs. Measurements only — the * calculator is never handed a patient, so no identity can reach the agent. */ export interface PregnancyWeightGainInputs { /** Height, cm. */ heightCm: number | null; /** Pre-pregnancy weight, kg. */ prePregnancyKg: number | null; /** Current weight, kg. */ currentKg: number | null; /** Completed gestational weeks. */ gestationalWeeks: number | null; } /** * Curated imperative handle for agent / external automation. Reads and writes * the four measurements plus the plurality choice, and reads back the computed * IOM assessment. Never exposes patient identity — the component only ever * holds numbers. Consumed by the `pregnancy-weight-gain.agent.ts` adapter; the * public `ref` stays the DOM element. */ export interface PregnancyWeightGainHandle { /** Canonical metric snapshot of the four inputs. */ getInputs: () => PregnancyWeightGainInputs; /** Set one or more inputs; omitted fields are left unchanged. */ setInputs: (next: Partial) => void; /** Number of babies the assessment is computed for. */ getPlurality: () => Plurality; /** Switch the plurality (re-keys the IOM bands). */ setPlurality: (next: Plurality) => void; /** Current computed assessment, or null until every input is valid. */ getResult: () => WeightGainResult | null; /** Clear the four measurements (plurality is a setting and is kept). */ reset: () => void; } export interface PregnancyWeightGainProps extends VariantProps { /** Initial number of babies. Defaults to `'singleton'`. */ defaultPlurality?: Plurality; /** Pre-fill the height (cm) — e.g. shared from a BMI measurement. */ defaultHeightCm?: number; /** Pre-fill the pre-pregnancy weight (kg) from the patient record. */ defaultPrePregnancyKg?: number; /** Fires whenever a result can be computed (and `null` when it can't). */ onResultChange?: (result: WeightGainResult | null) => void; /** When provided, shows the result-action buttons that emit / copy the result. */ onInsert?: (payload: InsertPayload) => void; /** * Verb the result-action buttons perform. Defaults to `'insert'` (editor * extension). Pass `'copy'` from an app shell to copy the result to the * clipboard instead. */ insertVariant?: InsertVariant; /** `copy` variant only — fired after a successful clipboard write. */ onCopy?: (mode: InsertMode) => void; /** `copy` variant only — fired if the clipboard write can't proceed. */ onError?: (error: unknown) => void; /** * Brand wordmark printed in the inserted/copied result-card footer. * Omitted → no brand line (and no footer hairline); a string → that custom * brand; `false` → no brand line. Brand is opt-in. */ insertBrand?: string | false; /** Opaque instance id, emitted as `data-component-id`. */ id?: string; /** Extra class names on the wrapper. */ className?: string; } export declare const PregnancyWeightGain: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=pregnancy-weight-gain.d.ts.map