import { type Plurality, type Chorionicity, type BirthGuideline } from './obstetrics'; export type AntenatalCategory = 'scan' | 'screening' | 'diagnostic' | 'lab' | 'prophylaxis' | 'milestone'; /** Which national schedule to resolve. Italy is the default market. */ export type ScheduleLocale = 'it' | 'uk' | 'international'; /** Status of a window relative to the reference date (keyed off its end). */ export type AntenatalStatus = 'past' | 'current' | 'upcoming'; /** Gestational-diabetes risk tier (drives which OGTT window applies). */ export type GdmRisk = 'high' | 'medium'; /** A clinical condition gating whether an event applies to a pregnancy. */ export type AntenatalCondition = 'rh-negative' | 'gdm-high' | 'gdm-medium' | 'on-indication'; export interface AntenatalEvent { /** Stable key → i18n lookup `antenatalSchedule.event.`. */ key: string; category: AntenatalCategory; /** Window start as GA days from gestationalStart (week*7 + day). Inclusive. */ startDay: number; /** Window end as GA days. Inclusive. Equals `startDay` for single dates. */ endDay: number; /** Restrict to these pluralities (omit ⇒ applies to all). */ plurality?: Plurality[]; /** Restrict to these chorionicities (omit ⇒ any). */ chorionicity?: Chorionicity[]; /** Gate behind a clinical condition (omit ⇒ always applies). */ condition?: AntenatalCondition; /** Citation key for provenance display. */ source: string; /** Interpolation values for the event's i18n string (e.g. surveillance cadence). */ meta?: Record; } export interface ResolvedAntenatalEvent extends AntenatalEvent { /** Absolute window start date. */ start: Date; /** Absolute window end date (=== `start` for a single-date event). */ end: Date; /** True when the event is a single calendar date, not a range. */ single: boolean; /** Status relative to the reference date, keyed off the window end. */ status: AntenatalStatus; /** Reference date is within `nearDays` before the window end. */ near: boolean; } export interface AntenatalScheduleOptions { /** Reference date for status. Defaults to the host's current date. */ today?: Date; /** National schedule. Defaults to `'it'`. */ schedule?: ScheduleLocale; /** Number of fetuses. Defaults to `'singleton'`. */ plurality?: Plurality; /** Placentation, for multiples. Defaults to `'unknown'`. */ chorionicity?: Chorionicity; /** Surface the anti-D prophylaxis event (Rh-negative, non-sensitised). */ rhNegative?: boolean; /** Surface the matching OGTT window for the patient's GDM risk tier. */ gdmRisk?: GdmRisk; /** Include `on-indication` diagnostics (CVS, amnio, NIPT). Default false. */ includeOnIndication?: boolean; /** Planned-birth guideline for multiples. Defaults to `'nice'`. */ birthGuideline?: BirthGuideline; /** Days before a window's end still counted as `current`. Default 14. */ nearDays?: number; } /** * Resolve the antenatal schedule for a pregnancy to dated, status-tagged * windows, ordered by start date (then end date). Pure: the only clock is * `opts.today` (defaults to a fresh `Date`). */ export declare function computeAntenatalSchedule(gestationalStart: Date, opts?: AntenatalScheduleOptions): ResolvedAntenatalEvent[]; //# sourceMappingURL=antenatal-schedule.d.ts.map