import AstronomicalObject from '../astronomicalObject/AstronomicalObject';
import { EclipticSphericalCoordinates, RectangularCoordinates } from '../coordinates/types/CoordinateTypes';
import { Location } from '../earth/types/LocationTypes';
import TimeOfInterest from '../time/TimeOfInterest';
export default class Sun extends AstronomicalObject {
    private readonly earth;
    constructor(toi?: TimeOfInterest);
    getHeliocentricEclipticRectangularJ2000Coordinates(): Promise<RectangularCoordinates>;
    getHeliocentricEclipticRectangularDateCoordinates(): Promise<RectangularCoordinates>;
    getHeliocentricEclipticSphericalJ2000Coordinates(): Promise<EclipticSphericalCoordinates>;
    getHeliocentricEclipticSphericalDateCoordinates(): Promise<EclipticSphericalCoordinates>;
    getGeocentricEclipticRectangularJ2000Coordinates(): Promise<RectangularCoordinates>;
    getGeocentricEclipticRectangularDateCoordinates(): Promise<RectangularCoordinates>;
    getGeocentricEclipticSphericalJ2000Coordinates(): Promise<EclipticSphericalCoordinates>;
    getGeocentricEclipticSphericalDateCoordinates(): Promise<EclipticSphericalCoordinates>;
    getApparentGeocentricEclipticSphericalCoordinates(): Promise<EclipticSphericalCoordinates>;
    getTransit(location: Location): Promise<TimeOfInterest>;
    getRise(location: Location, standardAltitude?: number): Promise<TimeOfInterest>;
    getRiseUpperLimb(location: Location): Promise<TimeOfInterest>;
    getSet(location: Location, standardAltitude?: number): Promise<TimeOfInterest>;
    getSetUpperLimb(location: Location): Promise<TimeOfInterest>;
    getAngularDiameter(): Promise<number>;
    getTopocentricAngularDiameter(location: Location): Promise<number>;
    getApparentMagnitude(): Promise<number>;
    getTopocentricApparentMagnitude(): Promise<number>;
}
