/** * Math helpers for converting raw ecliptic longitude decimals into the * sign / degree / minute / second triplet used across chart components. */ export interface SignPosition { sign: string; signIndex: number; degree: number; minute: number; second: number; } /** * Wrap longitude into [0, 360) so negative or out-of-range values still * resolve to a real sign. Robust to wonky upstream data. */ export declare function normalizeLongitude(lon: number): number; /** * Convert decimal ecliptic longitude (0-360) into sign/degree/minute/second. * Used by every chart wheel and aspect table. */ export declare function longitudeToSignPosition(longitude: number): SignPosition; /** Compact display string like "12° Leo 34'". Used in chart labels. */ export declare function formatSignPosition(longitude: number): string; /** Format a within-sign decimal degree (0-30) as degree-and-minute, e.g. 17.99 to "17°59'". The reference-grade form astrologers read when the sign is already known (asteroids, lots, directed points, fixed stars). */ export declare function formatDegreeInSign(deg: number): string; /** * The point diametrically opposite a longitude (e.g. Descendant from * Ascendant, IC from MC). Exact derivation, always 180 degrees away. */ export declare function oppositePoint(longitude: number): number; /** * Midpoint of the forward arc from `start` to `end` (both ecliptic * longitudes). Handles the 360/0 wrap, so a house spanning 350 to 20 degrees * yields a midpoint of 5, not 185. Used to place house numbers between two * cusps regardless of how unequal the house is. */ export declare function arcMidpoint(start: number, end: number): number; /** Polar to cartesian for SVG wheel positioning. Angle in degrees, 0 at 3 o'clock. */ export declare function polarToCartesian(cx: number, cy: number, radius: number, angleDeg: number): { x: number; y: number; }; //# sourceMappingURL=degree.d.ts.map