noaa-tidesandcurrents-mcp
by RyanCardin15
Verified
declare module 'suncalc' {
export interface MoonIllumination {
/** fraction of moon's visible disk that is illuminated */
fraction: number;
/** moon phase (0.0-1.0) */
phase: number;
/** midpoint angle in radians of the illuminated limb of the moon reckoned eastward from the north point of the disk */
angle: number;
}
export interface MoonPosition {
/** moon azimuth in radians */
azimuth: number;
/** moon altitude above the horizon in radians */
altitude: number;
/** distance to moon in kilometers */
distance: number;
/** parallactic angle of the moon in radians */
parallacticAngle: number;
}
export interface SunPosition {
/** sun azimuth in radians (direction along the horizon, measured from south to west) */
azimuth: number;
/** sun altitude above the horizon in radians */
altitude: number;
}
export interface SunTimes {
/** sunrise (top edge of the sun appears on the horizon) */
sunrise: Date;
/** sunrise ends (bottom edge of the sun touches the horizon) */
sunriseEnd: Date;
/** morning golden hour (soft light, best time for photography) starts */
goldenHourEnd: Date;
/** solar noon (sun is in the highest position) */
solarNoon: Date;
/** evening golden hour starts */
goldenHour: Date;
/** sunset starts (bottom edge of the sun touches the horizon) */
sunsetStart: Date;
/** sunset (sun disappears below the horizon, evening civil twilight starts) */
sunset: Date;
/** dusk (evening nautical twilight starts) */
dusk: Date;
/** nautical dusk (evening astronomical twilight starts) */
nauticalDusk: Date;
/** astronomical dusk (evening astronomical twilight starts) */
astronomicalDusk: Date;
/** night starts (dark enough for astronomical observations) */
night: Date;
/** nadir (darkest moment of the night, sun is in the lowest position) */
nadir: Date;
/** night ends (morning astronomical twilight starts) */
nightEnd: Date;
/** astronomical dawn (morning astronomical twilight starts) */
astronomicalDawn: Date;
/** nautical dawn (morning nautical twilight starts) */
nauticalDawn: Date;
/** dawn (morning nautical twilight ends, morning civil twilight starts) */
dawn: Date;
}
export interface MoonTimes {
/** moonrise time as Date */
rise: Date | null;
/** moonset time as Date */
set: Date | null;
/** true if the moon never rises/sets and is always above the horizon during the day */
alwaysUp: boolean;
/** true if the moon is always below the horizon */
alwaysDown: boolean;
}
/**
* Calculates sun position for a given date and latitude/longitude
*/
export function getPosition(date: Date | number, lat: number, lng: number): SunPosition;
/**
* Calculates sun times for a given date, latitude/longitude, and, optionally, the observer height (in meters) relative to the horizon
*/
export function getTimes(date: Date | number, lat: number, lng: number, height?: number): SunTimes;
/**
* Returns an object with the following properties:
* altitude: moon altitude above the horizon in radians
* azimuth: moon azimuth in radians
* distance: distance to moon in kilometers
* parallacticAngle: parallactic angle of the moon in radians
*/
export function getMoonPosition(date: Date | number, lat: number, lng: number): MoonPosition;
/**
* Returns an object with the following properties:
* fraction: illuminated fraction of the moon; varies from 0.0 (new moon) to 1.0 (full moon)
* phase: moon phase; varies from 0.0 to 1.0, described below
* angle: midpoint angle in radians of the illuminated limb of the moon reckoned eastward from the north point of the disk
*/
export function getMoonIllumination(date: Date | number): MoonIllumination;
/**
* Returns an object with the following properties:
* rise: moonrise time as Date
* set: moonset time as Date
* alwaysUp: true if the moon never rises/sets and is always above the horizon during the day
* alwaysDown: true if the moon is always below the horizon
*/
export function getMoonTimes(date: Date | number, lat: number, lng: number, inUTC?: boolean): MoonTimes;
}