interface RectangularCoordinates { x: number; y: number; z: number; } interface EclipticSphericalCoordinates { lon: number; lat: number; radiusVector: number; } interface EquatorialSphericalCoordinates { rightAscension: number; declination: number; radiusVector: number; } interface LocalHorizontalCoordinates { azimuth: number; altitude: number; radiusVector: number; } type Vsop87Element = Array>; type Vsop87Group = Array; type Vsop87 = { VSOP87_X: Vsop87Group; VSOP87_Y: Vsop87Group; VSOP87_Z: Vsop87Group; }; declare enum LimbAlignment { UpperLimb = "upperLimb", Center = "center", LowerLimb = "lowerLimb" } interface LatLon { lat: number; lon: number; } interface Location extends LatLon { elevation: number; } type Time = { year: number; month: number; day: number; hour: number; min: number; sec: number; }; declare class TimeOfInterest { readonly time: Time; readonly jd: number; readonly jde: number; readonly T: number; constructor(time: Time); static fromCurrentTime(): TimeOfInterest; static fromTime(year: number, month: number, day: number, hour?: number, min?: number, sec?: number): TimeOfInterest; static fromDate(date: Date): TimeOfInterest; static fromYearOfDay(year: number, dayOfYear: number): TimeOfInterest; static fromJulianDay(jd: number): TimeOfInterest; static fromJulianDayEphemeris(jde: number): TimeOfInterest; static fromJulianCenturiesJ2000(T: number): TimeOfInterest; getTime(): Time; getString(): string; getDate(): Date; getDecimalYear(): number; getDayOfYear(): number; getDayOfWeek(): number; isLeapYear(): boolean; getJulianDay(): number; getJulianDay0(): number; getJulianDayEphemeris(): number; getJulianCenturiesJ2000(): number; getJulianCenturiesJ2000Ephemeris(): number; getJulianMillenniaJ2000(): number; getJulianMillenniaJ2000Ephemeris(): number; getGreenwichMeanSiderealTime(): number; getGreenwichApparentSiderealTime(): number; getLocalMeanSiderealTime(location: LatLon): number; getLocalApparentSiderealTime(location: LatLon): number; getDeltaT(): number; } interface AstronomicalObjectInterface { getGeocentricEclipticRectangularJ2000Coordinates(): RectangularCoordinates; getGeocentricEclipticRectangularDateCoordinates(): RectangularCoordinates; getGeocentricEclipticSphericalJ2000Coordinates(): EclipticSphericalCoordinates; getGeocentricEclipticSphericalDateCoordinates(): EclipticSphericalCoordinates; getGeocentricEquatorialSphericalJ2000Coordinates(): EquatorialSphericalCoordinates; getGeocentricEquatorialSphericalDateCoordinates(): EquatorialSphericalCoordinates; getApparentGeocentricEclipticSphericalCoordinates(): EclipticSphericalCoordinates; getApparentGeocentricEquatorialSphericalCoordinates(): EquatorialSphericalCoordinates; getApparentTopocentricEquatorialSphericalCoordinates(location: Location): EquatorialSphericalCoordinates; getApparentTopocentricHorizontalCoordinates(location: Location): LocalHorizontalCoordinates; getRefractionCorrectedTopocentricHorizontalCoordinates(location: Location): LocalHorizontalCoordinates; getAngularDiameter(): number; getTransit(location: Location): TimeOfInterest; getGeometricRise(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getApparentRise(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getGeometricSet(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getApparentSet(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; } declare abstract class AstronomicalObject implements AstronomicalObjectInterface { protected readonly toi: TimeOfInterest; readonly name: string; protected readonly jd0: number; protected readonly jd: number; protected readonly Te: number; protected readonly te: number; protected readonly T: number; protected constructor(toi?: TimeOfInterest, name?: string); getTimeOfInterest(): TimeOfInterest; abstract getHeliocentricEclipticRectangularJ2000Coordinates(): RectangularCoordinates; abstract getHeliocentricEclipticRectangularDateCoordinates(): RectangularCoordinates; abstract getHeliocentricEclipticSphericalJ2000Coordinates(): EclipticSphericalCoordinates; abstract getHeliocentricEclipticSphericalDateCoordinates(): EclipticSphericalCoordinates; abstract getGeocentricEclipticRectangularJ2000Coordinates(): RectangularCoordinates; abstract getGeocentricEclipticRectangularDateCoordinates(): RectangularCoordinates; abstract getGeocentricEclipticSphericalJ2000Coordinates(): EclipticSphericalCoordinates; abstract getGeocentricEclipticSphericalDateCoordinates(): EclipticSphericalCoordinates; getGeocentricEquatorialSphericalJ2000Coordinates(): EquatorialSphericalCoordinates; getGeocentricEquatorialSphericalDateCoordinates(): EquatorialSphericalCoordinates; getApparentGeocentricEclipticRectangularCoordinates(): RectangularCoordinates; abstract getApparentGeocentricEclipticSphericalCoordinates(): EclipticSphericalCoordinates; getApparentGeocentricEquatorialSphericalCoordinates(): EquatorialSphericalCoordinates; getApparentTopocentricEquatorialSphericalCoordinates(location: Location): EquatorialSphericalCoordinates; getApparentTopocentricHorizontalCoordinates(location: Location): LocalHorizontalCoordinates; getRefractionCorrectedTopocentricHorizontalCoordinates(location: Location): LocalHorizontalCoordinates; getDistanceToEarth(): number; getApparentDistanceToEarth(): number; getTopocentricDistanceToEarth(location: Location): number; getLightTime(): number; getAngularDiameter(): number; getTransit(location: Location): TimeOfInterest; getGeometricRise(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getApparentRise(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getGeometricSet(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; getApparentSet(location: Location, limbAlignment?: LimbAlignment): TimeOfInterest; private getRiseSet; private getApparentEquatorialCoordinatesAtJulianDay; } declare class Earth extends AstronomicalObject { private readonly vsop87Date; private readonly vsop87J2000; constructor(toi?: TimeOfInterest, vsop87Date?: Vsop87, vsop87J2000?: Vsop87); static create(toi?: TimeOfInterest): Earth; getHeliocentricEclipticRectangularJ2000Coordinates(): RectangularCoordinates; getHeliocentricEclipticRectangularDateCoordinates(): RectangularCoordinates; getHeliocentricEclipticSphericalJ2000Coordinates(): EclipticSphericalCoordinates; getHeliocentricEclipticSphericalDateCoordinates(): EclipticSphericalCoordinates; getGeocentricEclipticRectangularJ2000Coordinates(): RectangularCoordinates; getGeocentricEclipticRectangularDateCoordinates(): RectangularCoordinates; getGeocentricEclipticSphericalJ2000Coordinates(): EclipticSphericalCoordinates; getGeocentricEclipticSphericalDateCoordinates(): EclipticSphericalCoordinates; getApparentGeocentricEclipticSphericalCoordinates(): EclipticSphericalCoordinates; getNutationInLongitude(): number; getNutationInObliquity(): number; getMeanObliquityOfEcliptic(): number; getTrueObliquityOfEcliptic(): number; } export { Earth as E, TimeOfInterest as T };