/** * astroengine vedic -- the Vedic/Jyotish layer: nakshatras and the Vimshottari * dasha, built on the already-validated sidereal longitudes. * * A nakshatra is one of 27 equal lunar mansions of 13 deg 20' in the sidereal * zodiac, each with four padas and a ruling planet cycling Ketu, Venus, Sun, * Moon, Mars, Rahu, Jupiter, Saturn, Mercury. The Vimshottari dasha is a * 120-year sequence of planetary periods in that order; the starting dasha is * the lord of the Moon's birth nakshatra, with the elapsed portion set by how * far the Moon has moved through it. Mahadashas subdivide into antardashas and * pratyantardashas of the nine lords, proportional to their years. Nakshatra * placement is exact division of the sidereal longitude; the dasha year is a * fixed 365.25 days by default (the common Jyotish convention). Mirrors the * Python reference (astroengine/vedic.py); the golden fixtures pin the two. */ import { Engine, BodyId, Zodiac } from "./chart.js"; export declare const NAKSHATRAS: readonly ["Ashwini", "Bharani", "Krittika", "Rohini", "Mrigashira", "Ardra", "Punarvasu", "Pushya", "Ashlesha", "Magha", "Purva Phalguni", "Uttara Phalguni", "Hasta", "Chitra", "Swati", "Vishakha", "Anuradha", "Jyeshtha", "Mula", "Purva Ashadha", "Uttara Ashadha", "Shravana", "Dhanishta", "Shatabhisha", "Purva Bhadrapada", "Uttara Bhadrapada", "Revati"]; /** The Vimshottari order and each lord's period in years (totalling 120). */ export declare const VIMSHOTTARI_ORDER: readonly ["ketu", "venus", "sun", "moon", "mars", "rahu", "jupiter", "saturn", "mercury"]; export declare const VIMSHOTTARI_YEARS: Record<(typeof VIMSHOTTARI_ORDER)[number], number>; export declare const NAK_SPAN: number; export declare const DASHA_YEAR = 365.25; export interface Nakshatra { index: number; name: string; pada: number; lord: string; /** Degrees into the nakshatra, 0..13.333. */ pos: number; } /** The nakshatra of a sidereal longitude. */ export declare function nakshatra(siderealLon: number): Nakshatra; /** The nakshatra of a body (default the Moon) at jd, in a sidereal zodiac. */ export declare function nakshatraAt(engine: Engine, jdUt: number, body?: BodyId, zodiac?: Zodiac): Nakshatra; export interface DashaSub { lord: string; start: number; end: number; } export interface Dasha { level: number; lord: string; start: number; end: number; sub: DashaSub[]; } export interface DashaTimeline { start_lord: string; balance_years: number; dashas: Dasha[]; } /** The Vimshottari dasha timeline from the Moon's sidereal longitude. */ export declare function vimshottariDashas(moonLon: number, natalJd: number, levels?: number, yearLength?: number, count?: number): DashaTimeline; export interface DashaActive { maha: string; antar: string | null; pratyantar: string | null; } /** The mahadasha, antardasha, and pratyantardasha lords active at targetJd. */ export declare function vimshottariActive(moonLon: number, natalJd: number, targetJd: number, yearLength?: number): DashaActive | null; /** Vimshottari dasha active at targetJd, from the natal Moon's nakshatra. */ export declare function vimshottariAt(engine: Engine, natalJd: number, targetJd: number, zodiac?: Zodiac, yearLength?: number): { moon_nakshatra: string; moon_pada: number; start_lord: string; } & Partial;