UNPKG

aemet-api

Version:

Cliente TypeScript para la API de AEMET (Agencia Estatal de Meteorología)

110 lines (109 loc) 4.28 kB
/** * Clase principal de la API de AEMET */ import { AemetOptions, SimpleForecastResponse, ForecastResponse, ClimateValuesParams, WeatherStation, ClimateValuesResponse } from './lib/types'; /** * Cliente para la API de AEMET (Agencia Estatal de Meteorología) */ export declare class Aemet { private apiKey; private baseUrl; private timeout; private provinciaIndex; /** * Inicializa un nuevo cliente de AEMET * @param apiKey - Clave API para acceder a la API de AEMET * @param options - Opciones adicionales */ constructor(apiKey: string, options?: AemetOptions); /** * Obtener la predicción simplificada para un municipio * @param municipalityCode - Código INE del municipio (5 dígitos) * @returns Predicción simplificada para los próximos 3 días */ getSimpleForecast(municipalityCode: string): Promise<SimpleForecastResponse>; /** * Obtener la predicción completa para un municipio * @param municipalityCode - Código INE del municipio (5 dígitos) * @returns Predicción completa con los datos crudos */ getForecast(municipalityCode: string): Promise<ForecastResponse>; /** * Obtener la lista de municipios disponibles * @returns Lista de municipios con sus códigos */ getMunicipalities(): Promise<any[]>; /** * Obtener la lista de provincias disponibles * @returns Lista de provincias */ getProvinces(): Promise<any[]>; /** * Obtener avisos meteorológicos para el día actual * @returns Avisos meteorológicos para hoy */ getAlertsToday(): Promise<any>; /** * Obtener avisos meteorológicos para el día siguiente * @returns Avisos meteorológicos para mañana */ getAlertsTomorrow(): Promise<any>; /** * Método privado para extraer la predicción de un día específico * @param data - Datos de la predicción completa * @param dayOffset - Desplazamiento del día (0 para hoy, 1 para mañana, etc.) * @returns Predicción simplificada para el día */ private extractDayForecast; /** * Método privado para obtener el estado del cielo predominante durante el día * @param skyStates - Array de estados del cielo * @returns Valor del estado del cielo predominante */ private getPredominantSkyState; /** * Obtener todas las estaciones meteorológicas disponibles * @returns Lista de estaciones meteorológicas */ getWeatherStations(): Promise<WeatherStation[]>; /** * Normaliza coordenadas desde formato AEMET (ej: "394924N") a decimales * @param coord - Coordenada en formato AEMET * @returns - Coordenada en formato decimal */ private normalizeCoordinate; /** * Busca estaciones por nombre o provincia * @param query - Texto a buscar en el nombre o provincia de la estación * @returns Lista de estaciones filtradas */ searchWeatherStations(query: string): Promise<WeatherStation[]>; /** * Obtener valores climatológicos diarios para una estación y período específicos * @param params - Parámetros para obtener valores climatológicos * @returns Valores climatológicos diarios */ getClimateValues(params: ClimateValuesParams): Promise<ClimateValuesResponse>; /** * Obtener resumen climatológico para una estación y período * @param params - Parámetros para obtener valores climatológicos * @provincia - Nombre de la provincia autónoma para filtrar estaciones * @returns Resumen estadístico de los valores climatológicos */ getClimateSummaryByProvincia(params: ClimateValuesParams, provincia: string): Promise<any>; private calculateWindDirectionAverage; /** * Método auxiliar para calcular la media de un array de números * @param values - Array de valores numéricos * @returns Media aritmética o 0 si no hay valores */ private calculateAverage; /** * Método auxiliar para calcular la suma de un array de números * @param values - Array de valores numéricos * @returns Suma total o 0 si no hay valores */ private calculateSum; private normalizeProvince; } export { AemetOptions };