/** * astroengine yogini -- the Yogini dasha, a 36-year nakshatra-based dasha cycle. * * Eight yoginis rule in a fixed order with periods 1..8 years (totalling 36): * Mangala (Moon) 1, Pingala (Sun) 2, Dhanya (Jupiter) 3, Bhramari (Mars) 4, * Bhadrika (Mercury) 5, Ulka (Saturn) 6, Siddha (Venus) 7, Sankata (Rahu) 8. * The starting yogini comes from the Moon's birth nakshatra: (nakshatra number * + 3) mod 8, a remainder of 0 meaning the 8th. As in Vimshottari, the elapsed * portion of the first period is the fraction of the nakshatra the Moon has * traversed, and each period subdivides into eight proportional sub-periods. * Mirrors the Python reference (astroengine/yogini.py); the golden fixtures pin * the two together. */ import { Engine, Zodiac } from "./chart.js"; export declare const YOGINIS: readonly ["Mangala", "Pingala", "Dhanya", "Bhramari", "Bhadrika", "Ulka", "Siddha", "Sankata"]; export declare const YOGINI_LORDS: Record<(typeof YOGINIS)[number], string>; /** Period in years by yogini index (Mangala..Sankata), totalling 36. */ export declare const YOGINI_YEARS: readonly [1, 2, 3, 4, 5, 6, 7, 8]; /** 0-based starting yogini index from the Moon's nakshatra index (0-based): * (nakshatra number + 3) mod 8, a remainder of 0 mapping to the 8th. */ export declare function startingYogini(nakIndex: number): number; export interface YoginiSub { yogini: string; lord: string; start: number; end: number; } export interface YoginiPeriod { level: number; yogini: string; lord: string; years: number; start: number; end: number; sub: YoginiSub[]; } export interface YoginiTimeline { start_yogini: string; balance_years: number; dashas: YoginiPeriod[]; } /** The Yogini dasha timeline from the Moon's sidereal longitude. */ export declare function yoginiDashas(moonLon: number, natalJd: number, levels?: number, yearLength?: number, count?: number): YoginiTimeline; export interface YoginiActive { maha: string; antar: string | null; } /** The maha and antar yogini active at targetJd; null before the first period. */ export declare function yoginiActive(moonLon: number, natalJd: number, targetJd: number, yearLength?: number): YoginiActive | null; /** Yogini dasha active at targetJd, from the natal Moon's nakshatra. */ export declare function yoginiAt(engine: Engine, natalJd: number, targetJd: number, zodiac?: Zodiac, yearLength?: number): { moon_nakshatra: string; start_yogini: string; } & Partial;