/** Standard menstrual-cycle length. */ export declare const DEFAULT_CYCLE_LENGTH = 28; /** Luteal phase is biologically near-constant at ~14 days. */ export declare const LUTEAL_PHASE_DAYS = 14; /** Sperm survive up to ~5 days before ovulation. */ export declare const FERTILE_DAYS_BEFORE = 5; /** The oocyte is viable ~1 day after ovulation. */ export declare const FERTILE_DAYS_AFTER = 1; export interface CycleInput { /** First day of the most recent period. */ lastPeriodStart: Date; /** Average cycle length in days. Defaults to 28. */ cycleLength?: number; /** Period (bleed) length in days. Optional — used for the period range. */ periodLength?: number; } export interface DateRange { start: Date; end: Date; } export interface CyclePrediction { /** Start date of the next period. */ nextPeriod: Date; /** Estimated ovulation date. */ ovulation: Date; /** Fertile window (5 days before ovulation → 1 day after). */ fertileWindow: DateRange; /** Start dates of the next few periods (length = `occurrences`). */ upcomingPeriods: Date[]; /** * The current period's bleed range (first day → last day), or `null` when no * `periodLength` was given. */ periodRange: DateRange | null; } /** * Predict ovulation, the fertile window and upcoming periods from the last * period's start date. `occurrences` controls how many future periods to * list (default 3). */ export declare function predictCycle(input: CycleInput, occurrences?: number): CyclePrediction; //# sourceMappingURL=cycle.d.ts.map