/** * astroengine rajayoga -- the lordship-and-aspect layer for Vedic yogas, and the * raja/dhana yogas built on it. * * Layers: house lordship (traditional ruler of each whole-sign house from the * Ascendant); graha drishti (every planet aspects the 7th sign; Mars also 4/8, * Jupiter 5/9, Saturn 3/10); association (conjunction, mutual aspect, or * parivartana exchange); then raja yoga (a kendra lord 1/4/7/10 associated with * a trikona lord 1/5/9), dhana yoga (two wealth-house 2/5/9/11 lords), and the * yogakaraka (a planet ruling both a pure kendra 4/7/10 and a pure trikona 5/9). * Definitions follow BPHS, validated against the named source in * `validate_jyotish`. Mirrors the Python reference (astroengine/rajayoga.py). */ import { Engine, Zodiac } from "./chart.js"; /** Graha drishti: the house-distances (1-based) each planet aspects. */ export declare const DRISHTI: Record; export declare const KENDRAS: number[]; export declare const TRIKONAS: number[]; export declare const DHANA_HOUSES: number[]; /** The traditional ruler of a sign index (0 = Aries). */ export declare function signLord(sign: number): string; /** The sign on the given whole-sign house (1-12) from the Ascendant. */ export declare function houseSign(ascSign: number, house: number): number; /** The lord of the given whole-sign house from the Ascendant. */ export declare function houseLord(ascSign: number, house: number): string; /** The whole-sign house (1-12) a sign falls in from the Ascendant. */ export declare function houseFromAsc(ascSign: number, sign: number): number; /** Whether `planet` at `planetSign` casts a graha drishti onto `targetSign`. */ export declare function aspectsSign(planet: string, planetSign: number, targetSign: number): boolean; /** Sign exchange: a sits in b's sign and b sits in a's sign. */ export declare function parivartana(planetA: string, signA: number, planetB: string, signB: number): boolean; /** How two planets associate: "conjunction" | "exchange" | "aspect" | null. */ export declare function associationType(planetA: string, signA: number, planetB: string, signB: number): string | null; /** Planets ruling both a pure kendra (4/7/10) and a pure trikona (5/9), sorted. */ export declare function yogakarakas(ascSign: number): string[]; export interface LordPairYoga { lords: string[]; via: string; } /** Raja yogas: associations between a kendra lord and a trikona lord. */ export declare function rajaYogas(signs: Record, ascSign: number): LordPairYoga[]; /** Dhana yogas: associations between two wealth-house (2/5/9/11) lords. */ export declare function dhanaYogas(signs: Record, ascSign: number): LordPairYoga[]; /** Raja yogas of a natal chart, with the chart's yogakarakas. */ export declare function rajaYogasAt(engine: Engine, natalJd: number, lat: number, lonEast: number, zodiac?: Zodiac): { raja: LordPairYoga[]; yogakarakas: string[]; }; /** Dhana yogas of a natal chart. */ export declare function dhanaYogasAt(engine: Engine, natalJd: number, lat: number, lonEast: number, zodiac?: Zodiac): LordPairYoga[];