aemet-api
Version:
Cliente TypeScript para la API de AEMET (Agencia Estatal de Meteorología)
110 lines (109 loc) • 4.28 kB
TypeScript
/**
* 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 };