import { Engine, BodyId, Zodiac } from "./chart.js"; export declare const CAZIMI_DEG = 0.2833; export declare const COMBUST_DEG = 8.5; export declare const UNDER_BEAMS_DEG = 15; /** Signed shortest angle from b to a, in (-180, 180] degrees. */ export declare function signedElongation(lonA: number, lonB: number): number; /** Unsigned angular separation in [0, 180] degrees. */ export declare function separation(lonA: number, lonB: number): number; export type AspectPhase = "applying" | "separating" | "exact"; /** Applying/separating/exact for the aspect (degrees) between body a and body b, * from their longitudes and longitude speeds (deg/day). Applying = the orb to * the exact aspect is closing. */ export declare function aspectPhase(lonA: number, speedA: number, lonB: number, speedB: number, aspectDeg: number): AspectPhase; export interface AspectMatch { aspect: string; orb: number; separation: number; phase: AspectPhase; } /** The tightest major aspect between two bodies at jd, within orb, or null. * orb is the signed distance from exact (degrees). */ export declare function aspectBetween(engine: Engine, bodyA: BodyId, bodyB: BodyId, jdUt: number, zodiac?: Zodiac, orbs?: Record): AspectMatch | null; export type SolarPhase = "cazimi" | "combust" | "under_beams" | null; /** Ecliptic-longitude separation between a body and the Sun (degrees). */ export declare function solarElongation(engine: Engine, body: BodyId, jdUt: number, zodiac?: Zodiac): number; /** cazimi / combust / under_beams / null for a body's nearness to the Sun by * ecliptic longitude. The Sun itself returns null. */ export declare function solarPhase(engine: Engine, body: BodyId, jdUt: number, zodiac?: Zodiac, cazimi?: number, combust?: number, underBeams?: number): SolarPhase; export interface PlanetaryHour { ruler: string; kind: "day" | "night"; hour: number; dayRuler: string; start: number; end: number; } /** The planetary hour containing jdUt at a place, or null at latitudes where * the Sun does not rise or set on the day in question. */ export declare function planetaryHour(engine: Engine, jdUt: number, lat: number, lonEast: number): PlanetaryHour | null; export interface VoidOfCourse { isVoid: boolean; sign: string; signExit: number; nextAspect: number | null; } /** Void-of-course state of the Moon at jdUt: void from its last perfecting * aspect to a traditional planet (Sun..Saturn) until it leaves the sign it * occupies at jdUt. */ export declare function voidOfCourse(engine: Engine, jdUt: number, zodiac?: Zodiac, maxDays?: number): VoidOfCourse; /** 1-based house number for an ecliptic longitude (degrees) given the twelve * cusps (degrees), wrapping across 0. */ export declare function houseOf(lon: number, cusps: number[]): number; /** angular / succedent / cadent for a 1-based house number. */ export declare function angularity(house: number): "angular" | "succedent" | "cadent";