/** * `kundali()` — the sidereal birth chart: nine grahas, the lagna, and * whole-sign bhavas, with nakshatra and navamsa (D9) placements. * * The Date is the exact birth instant (a JS Date is always UTC inside); * no timezone is needed because nothing here depends on the local * calendar date — only on the instant and the place. */ import { type Nakshatra } from './nakshatra.js'; import { type Graha } from './names.js'; /** Which lunar node stands in for Rahu/Ketu. */ export type NodeKind = 'mean' | 'true'; export interface KundaliOptions { /** The exact birth instant. */ date: Date; /** Degrees north-positive. */ latitude: number; /** Degrees east-positive. */ longitude: number; /** * Rahu/Ketu from the mean node (default, smooth regression) or the * true osculating node (wobbles ±1.7° around it, briefly direct). */ node?: NodeKind; } export interface RashiPosition { /** Sidereal ecliptic longitude, degrees [0, 360). */ longitude: number; /** Rashi index 0–11 (0 = Mesha). */ rashi: number; rashiName: string; /** Degrees into the rashi, [0, 30). */ degreeInRashi: number; nakshatra: Nakshatra; /** Navamsa (D9) rashi index 0–11. */ navamsaRashi: number; } export interface GrahaPosition extends RashiPosition { graha: Graha; /** * Apparent backwards motion. Always true for the mean node's * Rahu/Ketu; the true node runs direct for short stretches. */ retrograde: boolean; /** Whole-sign house 1–12, counted from the lagna's rashi. */ bhava: number; } export interface Bhava { /** House number 1–12. */ bhava: number; rashi: number; rashiName: string; /** Grahas occupying this house. */ grahas: Graha[]; } export interface Kundali { /** Lahiri ayanamsa at the instant, degrees. */ ayanamsa: number; lagna: RashiPosition; /** All nine grahas in conventional order (Sun … Ketu). */ grahas: GrahaPosition[]; /** The twelve whole-sign houses, house 1 = the lagna's rashi. */ bhavas: Bhava[]; } export interface GrahaLongitude { graha: Graha; /** Sidereal (Lahiri) ecliptic longitude, degrees [0, 360). */ longitude: number; retrograde: boolean; } /** * Sidereal longitudes and retrograde flags of all nine grahas at an * instant — the shared engine behind `kundali()` and `transits()`. * * @example * ```ts * grahaSiderealPositions(2449217.71875)[1]; * // { graha: 'moon', longitude: ≈127.20, retrograde: false } * ``` */ export declare function grahaSiderealPositions(jdUt: number, node?: NodeKind): GrahaLongitude[]; /** * Compute the sidereal kundali for a birth instant and place. * * @example * ```ts * const k = kundali({ * date: new Date('1993-08-18T05:15:00Z'), // 11:00 NPT * latitude: 27.0104, * longitude: 84.8821, * }); * // k.lagna.rashiName → 'Tula' (Libra 11°47′) * // k.grahas[1].nakshatra.name → 'Magha' (Moon), pada 3 * // k.grahas[6].retrograde → true (Saturn) * ``` */ export declare function kundali(options: KundaliOptions): Kundali; //# sourceMappingURL=kundali.d.ts.map