import { type BodyId, type Chart, type Engine, type Zodiac } from "./chart.js"; import { type AspectPhase } from "./electional.js"; /** A transiting body aspecting a natal point. */ export interface TransitHit { transit: string; natal: string; aspect: string; orb: number; phase: AspectPhase; strength: number; /** Natal house the transiting body occupies (by natal cusps). */ natalHouse: number; } /** An inter-chart aspect between person A's body and person B's body. */ export interface SynastryAspectHit { a: string; b: string; aspect: string; orb: number; strength: number; } export interface SynastryOverlays { /** Person A's bodies in person B's houses. */ aInB: Record; /** Person B's bodies in person A's houses. */ bInA: Record; } /** A composite-chart body placement (midpoint method). */ export interface CompositePlacement { body: string; lon: number; sign: string; signDeg: number; } /** * Transiting bodies aspecting a natal chart at `transitJd`. Natal longitudes are * fixed; phase reflects the transiting body's motion toward the natal point. */ export declare function transitAspects(natal: Chart, engine: Engine, transitJd: number, opts?: { maxOrb?: number; zodiac?: Zodiac; orbs?: Record; bodies?: BodyId[]; }): TransitHit[]; /** * Inter-chart aspects between two natal charts (static snapshot; both speeds 0). */ export declare function synastryAspects(chartA: Chart, chartB: Chart, maxOrb?: number, orbs?: Record): SynastryAspectHit[]; /** House overlays both ways between two charts. */ export declare function synastryOverlays(chartA: Chart, chartB: Chart): SynastryOverlays; /** * Midpoint-composite placements for `bodies` from two birth instants. */ export declare function compositePlacements(engine: Engine, jdA: number, jdB: number, bodies?: BodyId[], zodiac?: Zodiac): CompositePlacement[];