import { type VariantProps } from 'class-variance-authority'; import { type InsertPayload, type InsertVariant, type InsertMode } from '../_shared/insert-result'; import { type HcgResult } from './hcg'; declare const rootVariants: (props?: ({ width?: "auto" | "full" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** The two timed samples as entered. */ export interface HcgSamplesSnapshot { /** First β-hCG value, mIU/mL, or null. */ hcg1: number | null; /** When the first sample was drawn, ISO-8601 with offset, or null. */ date1: string | null; /** Second β-hCG value, mIU/mL, or null. */ hcg2: number | null; /** When the second sample was drawn, ISO-8601 with offset, or null. */ date2: string | null; } /** * Curated imperative handle for agent / external automation. Reads the two * timed samples and the computed trend, and writes the samples the way a user * would enter them. Never exposes patient identity — only structural lab * figures, sample times and the derived doubling numbers. Consumed by * `hcg-doubling.agent.ts`; the public `ref` stays the root DOM element. */ export interface HcgDoublingHandle { /** The two timed samples as entered, or null where unset. */ getSamples: () => HcgSamplesSnapshot; /** Computed doubling time, 48-hour rise and trend band, or null. */ getResult: () => HcgResult | null; /** * Set any subset of the two timed samples. Omitted keys are left unchanged; * an explicit `null` clears one. Applies all-or-nothing — returns false and * writes nothing if any value is unusable. */ setSamples: (next: Partial) => boolean; } export interface HcgDoublingProps extends VariantProps { /** Pre-fill the first sample's date/time (e.g. from the lab record). */ defaultDate1?: Date; /** Pre-fill the second sample's date/time. */ defaultDate2?: Date; /** Fires whenever both timed values resolve (and `null` when not). */ onResultChange?: (result: HcgResult | null) => void; /** When provided, shows the result-action buttons that emit / copy the result. */ onInsert?: (payload: InsertPayload) => void; /** Which verb the result button performs. Defaults to `'insert'`. */ 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. */ insertBrand?: string | false; /** Opaque instance id, emitted as `data-component-id`. */ id?: string; /** Extra class names on the wrapper. */ className?: string; } export declare const HcgDoubling: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=hcg-doubling.d.ts.map