type LocTime = {
    moment: Date;
    sunrise: Date;
    sunset: Date;
};
type SunTime = {
    moment: Date;
    sunrise: Date;
    sunset: Date;
};
type TimeZone = {
    zoneName: string | undefined;
    gmtOffset: number;
};

declare class SunPosition {
    private STANDARD_MERIDIAN;
    private lat;
    private lng;
    private TZ;
    private x;
    private angleDeclination;
    private sunrise;
    private sunset;
    private elevation;
    private azimuth;
    private durationDay;
    private objectCurrection;
    private hourDay;
    private dateTimeLoc;
    private floor;
    private round;
    private sin;
    private cos;
    private tan;
    private asin;
    private acos;
    constructor(lat: number, lng: number, date: Date);
    setLatitude(lat: number): void;
    setLongitude(lng: number): void;
    setDateTime(dateTime: Date): void;
    getDurationDay(): number[];
    getDeclinationAngle(): number;
    getTimeZone(): Promise<TimeZone>;
    private sunHour;
    private Eot;
    private currectionTime;
    getSunTime(): Promise<SunTime>;
    getLocTime(): Promise<LocTime>;
    private calcDeclination;
    private calcAngleHour;
    getElevation(): Promise<number>;
    getAzimuth(): Promise<number>;
    private timeZoneObt;
}

export { SunPosition };
