import { Body, Observer } from "astronomy-engine"; import { KaranaTransition, TithiTransition, NakshatraTransition, YogaTransition, PlanetaryPosition, MuhurtaTime, RashiTransition, SankrantiInfo, PanchakInfo, DashaResult } from "./types"; /** * Calculate Tithi (lunar day) from Sun and Moon sidereal longitudes. * * @param sunLon - Sidereal longitude of the Sun (0-360) * @param moonLon - Sidereal longitude of the Moon (0-360) * @returns Tithi index, **0-indexed** (0-29). * 0-14 = Shukla Prathama to Purnima, * 15-29 = Krishna Prathama to Amavasya. * Use `getTithiAtSunrise()` from udaya-tithi.ts for 1-indexed (1-30) values * required by festival detection. */ export declare function getTithi(sunLon: number, moonLon: number): number; /** * Calculate the current Nakshatra (lunar mansion) from the Moon's sidereal longitude. * @param moonLon - Sidereal longitude of the Moon (0-360) * @returns Nakshatra index (0-26): 0 = Ashwini, 26 = Revati */ export declare function getNakshatra(moonLon: number): number; /** * Calculate the current Yoga from Sun and Moon sidereal longitudes. * @param sunLonSidereal - Sidereal longitude of the Sun (0-360) * @param moonLonSidereal - Sidereal longitude of the Moon (0-360) * @returns Yoga index (0-26): 0 = Vishkambha, 26 = Vaidhriti */ export declare function getYoga(sunLonSidereal: number, moonLonSidereal: number): number; /** * Calculate the current Karana (half-tithi) from Sun and Moon longitudes. * @param sunLon - Sidereal longitude of the Sun (0-360) * @param moonLon - Sidereal longitude of the Moon (0-360) * @returns Karana name string */ export declare function getKarana(sunLon: number, moonLon: number): string; /** * Returns the weekday (0=Sunday, ...) based on the Observer's local time. * * @param date - Date to check * @param observer - Observer location (used to approximate timezone from longitude if timezoneOffsetMinutes is not given) * @param timezoneOffsetMinutes - Explicit timezone offset in minutes (e.g. 330 for IST). Preferred over longitude approximation. */ export declare function getVara(date: Date, observer?: Observer, timezoneOffsetMinutes?: number): number; interface LocalDayOptions { timezoneOffset?: number; } export declare function getSunrise(date: Date, observer: Observer, options?: LocalDayOptions): Date | null; export declare function getSunset(date: Date, observer: Observer, options?: LocalDayOptions): Date | null; export declare function getMoonrise(date: Date, observer: Observer, options?: LocalDayOptions): Date | null; export declare function getMoonset(date: Date, observer: Observer, options?: LocalDayOptions): Date | null; export declare function findNakshatraStart(date: Date, ayanamsa: number): Date | null; export declare function findNakshatraEnd(date: Date, ayanamsa: number): Date | null; export declare function findTithiStart(date: Date): Date | null; export declare function findTithiEnd(date: Date): Date | null; export declare function findYogaEnd(date: Date, ayanamsa: number): Date | null; export declare function getPlanetaryPosition(body: Body, date: Date, ayanamsa: number): PlanetaryPosition; export declare function getRahuPosition(date: Date, ayanamsa: number): PlanetaryPosition; export declare function getKetuPosition(rahuPos: PlanetaryPosition): PlanetaryPosition; export declare function calculateAbhijitMuhurta(sunrise: Date, sunset: Date): MuhurtaTime | null; export declare function calculateBrahmaMuhurta(sunrise: Date, prevSunset?: Date): MuhurtaTime | null; export declare function calculateGovardhanMuhurta(sunrise: Date, sunset: Date): MuhurtaTime | null; export declare function calculateYamagandaKalam(sunrise: Date, sunset: Date, vara: number): MuhurtaTime | null; export declare function calculateGulikaKalam(sunrise: Date, sunset: Date, vara: number): MuhurtaTime | null; /** * Calculate Dur (inauspicious) Muhurtas for the day. * Traditional Panchanga specifies two dur muhurtas per weekday. * * @param sunrise - Sunrise time * @param sunset - Sunset time * @param vara - Weekday (0=Sun … 6=Sat). When omitted, falls back to static [4, 6]. */ export declare function calculateDurMuhurta(sunrise: Date, sunset: Date, vara?: number): MuhurtaTime[] | null; export declare function calculateChandraBalam(moonLon: number, sunLon: number): number; /** * Get the current Hora (planetary hour) lord. * * @param date - Current time * @param sunrise - Sunrise time for the day * @param observer - Observer location * @param timezoneOffsetMinutes - Explicit TZ offset in minutes (e.g. 330 for IST) for accurate weekday */ export declare function getCurrentHora(date: Date, sunrise: Date, observer?: Observer, timezoneOffsetMinutes?: number): string; export declare function calculateRahuKalam(sunrise: Date, sunset: Date, vara: number): { start: Date; end: Date; } | null; export declare function findKaranaTransitions(startDate: Date, endDate: Date): KaranaTransition[]; export declare function findTithiTransitions(startDate: Date, endDate: Date): TithiTransition[]; export declare function findNakshatraTransitions(startDate: Date, endDate: Date, ayanamsa: number): NakshatraTransition[]; export declare function findYogaTransitions(startDate: Date, endDate: Date, ayanamsa: number): YogaTransition[]; export declare function getPaksha(tithi: number): string; export declare function getAyana(sunLon: number): string; export declare function getRitu(sunLon: number): string; export declare function getMasa(sunLon: number, moonLon: number, date: Date, calendarType?: 'amanta' | 'purnimanta'): { index: number; name: string; isAdhika: boolean; }; export declare function getSamvat(date: Date, masaIndex: number): { vikram: number; shaka: number; samvatsara: string; }; export declare function getNakshatraPada(moonLon: number): number; export declare function getRashi(lon: number): { index: number; name: string; }; export declare function getSunNakshatra(sunLon: number): { index: number; name: string; pada: number; }; /** * Find the next Sankranti (Sun's ingress into a Rashi) from a given date. * Sankranti marks the Sun entering a new sidereal zodiac sign. * * @param date - Starting date to search from * @param ayanamsa - Ayanamsa value for sidereal calculation * @returns SankrantiInfo with exact time, rashi, and punya kalam */ export declare function findNextSankranti(date: Date, ayanamsa: number): SankrantiInfo | null; /** * Find all Sankrantis within a date range. * * @param startDate - Start of date range * @param endDate - End of date range * @param ayanamsa - Ayanamsa value for sidereal calculation * @returns Array of SankrantiInfo objects */ export declare function findSankrantisInRange(startDate: Date, endDate: Date, ayanamsa: number): SankrantiInfo[]; /** * Check if a given date falls on a Sankranti day (within the same civil day). * * @param date - Date to check * @param ayanamsa - Ayanamsa value * @param timezoneOffsetMinutes - Timezone offset in minutes for civil day calculation * @returns SankrantiInfo if Sankranti occurs on this day, null otherwise */ export declare function getSankrantiForDate(date: Date, ayanamsa: number, timezoneOffsetMinutes?: number): SankrantiInfo | null; /** * Check if the current Moon Nakshatra falls in Panchak period. * Panchak occurs when Moon transits through the last 5 Nakshatras: * Dhanishta (22), Shatabhisha (23), Purva Bhadrapada (24), Uttara Bhadrapada (25), Revati (26) * * Each Panchak Nakshatra is associated with specific doshas: * - Dhanishta: Mrityu Panchak (death-related activities avoided) * - Shatabhisha: Agni Panchak (fire-related activities avoided) * - Purva Bhadrapada: Raja Panchak (government/legal matters avoided) * - Uttara Bhadrapada: Chora Panchak (theft-related fears, travel avoided) * - Revati: Roga Panchak (health-related activities avoided) * * @param moonNakshatraIndex - Current Moon Nakshatra (0-26) * @returns PanchakInfo with type and activity recommendations */ export declare function getPanchak(moonNakshatraIndex: number): PanchakInfo; export declare function getUdayaLagna(date: Date, observer: Observer, ayanamsa: number): number; export declare function findRashiTransitions(startDate: Date, endDate: Date, ayanamsa: number): RashiTransition[]; /** * Calculate Tara Balam based on Moon's current Nakshatra and birth Nakshatra. * * @deprecated Use `getTarabalam(birthNakshatra, moonNakshatra)` from `tarabalam.ts` for richer output. * @param moonNakshatra - Current Moon Nakshatra index (0-26) * @param birthNakshatra - Birth Nakshatra index (0-26) */ export declare function calculateTaraBalam(moonNakshatra: number, birthNakshatra: number): { strength: string; type: string; }; export declare function calculateChandraBalamFromRashi(moonRashi: number, birthRashi: number): { strength: string; type: string; }; export declare function calculateVarjyam(nakshatraIndex: number, nakshatraStart: Date, nakshatraEnd: Date): MuhurtaTime[]; export declare function calculateAmritKalam(nakshatraIndex: number, nakshatraStart: Date, nakshatraEnd: Date): MuhurtaTime | null; export declare function getSpecialYoga(vara: number, nakshatraIndex: number): { name: string; description: string; isAuspicious: boolean; }[]; export declare function calculateVimshottariDasha(moonLon: number, birthDate: Date): DashaResult; export {}; //# sourceMappingURL=calculations.d.ts.map