@ryancardin/noaa-tides-currents-mcp-server
Version:
MCP Server that interfaces with NOAA Tides and Currents API using FastMCP
61 lines (60 loc) • 2.16 kB
TypeScript
import { SunTimesParams, SunTimesRangeParams, SunPositionParams, NextSunEventParams } from '../interfaces/sun.js';
import { SunTimesInfo, SunPositionInfo } from '../types/sun.js';
/**
* Service for sun calculations
*/
export declare class SunService {
/**
* Get sun times for a specific date and location
* @param params Parameters for the request
* @returns Sun times information
*/
getSunTimes(params: SunTimesParams): SunTimesInfo;
/**
* Get sun times for a date range
* @param params Parameters for the request
* @returns Array of sun times information
*/
getSunTimesRange(params: SunTimesRangeParams): SunTimesInfo[];
/**
* Get sun position for a specific date, time, and location
* @param params Parameters for the request
* @returns Sun position information
*/
getSunPosition(params: SunPositionParams): SunPositionInfo;
/**
* Get the next occurrence(s) of a specific sun event
* @param params Parameters for the request
* @returns Array of dates for the next occurrences of the specified event
*/
getNextSunEvent(params: NextSunEventParams): {
date: string;
time: string;
event: string;
}[];
/**
* Calculate approximate equatorial coordinates (right ascension and declination)
* from horizontal coordinates (azimuth and altitude)
* Note: This is a simplified calculation and may not be precise
* @param date Date of observation
* @param azimuth Azimuth in radians
* @param altitude Altitude in radians
* @param latitude Observer's latitude
* @param longitude Observer's longitude
* @returns Approximate equatorial coordinates
*/
private calculateEquatorialCoordinates;
/**
* Calculate approximate local sidereal time
* @param date Date of observation
* @param longitude Observer's longitude
* @returns Local sidereal time in radians
*/
private calculateLocalSiderealTime;
/**
* Calculate Julian day from date
* @param date Date to convert
* @returns Julian day
*/
private calculateJulianDay;
}