/** * Divisional Charts (Vargas) — Complete Parashara Ruleset * * Implements all 16 standard Vargas per BPHS (Brihat Parashara Hora Shastra). * All internal arithmetic uses Decimal.js to eliminate floating-point drift. * * PUBLIC API: takes `number` longitude, returns `VargaPoint` with `number` fields. * INTERNAL: uses `Decimal` for all division/modulo operations. */ export interface VargaPoint { longitude: number; sign: number; degree: number; deity?: string; } /** Which Hora (D2) rule to apply. */ export type HoraScheme = 'parashara' | 'parivritti'; /** * Default Hora scheme: BPHS. A D2 position therefore falls in Leo or Cancer. * * Set `'parivritti'` for the twelve-sign Parivritti Dwaya variant. */ export declare const DEFAULT_HORA_SCHEME: HoraScheme; /** * Which Dasamsa (D10) rule to use for even signs. * * - `'parashara'` — classical BPHS: forward from the 9th sign. * - `'jhora_5_8'` — the scheme JHora prints as "D-10 (5-8)": backward from the * 5th sign, degree reversed within the part. * * Odd signs are identical under both. Only D10 is affected; every other varga * has a single unambiguous rule. */ export type DasamsaScheme = 'parashara' | 'jhora_5_8'; /** * Default Dasamsa scheme: **classical Parashara**. * * This is the one place where the project deliberately does *not* follow JHora. * BPHS states the rule plainly — ten parts from the sign itself for odd signs, * from the ninth sign for even ones — and that is what `'parashara'` implements. * JHora's `(5-8)` variant has no basis in BPHS. * * The distinction matters because the layers have different authorities: * planetary positions are settled by astronomy, but *rules* are settled by the * text. Pass `{ dasamsaScheme: 'jhora_5_8' }` to reproduce JHora's D10 exactly. */ export declare const DEFAULT_DASAMSA_SCHEME: DasamsaScheme; /** Options accepted by {@link calculateVarga}. */ export interface VargaOptions { dasamsaScheme?: DasamsaScheme; horaScheme?: HoraScheme; } /** * Calculate a planet's position in a given Divisional Chart. * * @param longitude Sidereal longitude in degrees [0, 360) * @param division Chart divisor (1, 2, 3, 4, 7, 9, 10, 12, 16, 20, 24, 27, 30, 40, 45, 60) * @param options Per-call overrides; currently only the D10 scheme * @returns VargaPoint with sign (1-12), degree (0-30), and longitude */ export declare function calculateVarga(longitude: number, division: number, options?: VargaOptions): VargaPoint; export declare const calculateD1: (lon: number) => VargaPoint; export declare const calculateD2: (lon: number, options?: VargaOptions) => VargaPoint; export declare const calculateD3: (lon: number) => VargaPoint; export declare const calculateD4: (lon: number) => VargaPoint; export declare const calculateD7: (lon: number) => VargaPoint; export declare const calculateD9: (lon: number) => VargaPoint; export declare const calculateD10: (lon: number, options?: VargaOptions) => VargaPoint; export declare const calculateD12: (lon: number) => VargaPoint; export declare const calculateD16: (lon: number) => VargaPoint; export declare const calculateD20: (lon: number) => VargaPoint; export declare const calculateD24: (lon: number) => VargaPoint; export declare const calculateD27: (lon: number) => VargaPoint; export declare const calculateD30: (lon: number) => VargaPoint; export declare const calculateD40: (lon: number) => VargaPoint; export declare const calculateD45: (lon: number) => VargaPoint; export declare const calculateD60: (lon: number) => VargaPoint; export declare const calculateShashtyamsa: (lon: number) => VargaPoint;