import { Cache } from 'cache-manager'; import { OnApplicationBootstrap } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { SchedulerRegistry } from '@nestjs/schedule'; import { ConfigService } from '../../config/services/config.service'; import { WeatherLocationEntity } from '../entities/locations.entity'; import { WeatherAlertModel } from '../models/alert.model'; import { CurrentDayModel, ForecastDayModel, ForecastHourModel, LocationWeatherModel } from '../models/weather.model'; import { LocationsService } from './locations.service'; import { WeatherHistoryService } from './weather-history.service'; import { WeatherProviderRegistryService } from './weather-provider-registry.service'; export declare class WeatherService implements OnApplicationBootstrap { private readonly schedulerRegistry; private readonly locationsService; private readonly providerRegistry; private readonly configService; private readonly eventEmitter; private readonly historyService; private readonly cacheManager; private readonly logger; private readonly refreshJob; private readonly CACHE_TTL; private readonly ALERTS_CACHE_TTL; private readonly CURRENT_CACHE_PREFIX; private readonly FORECAST_CACHE_PREFIX; private readonly HOURLY_CACHE_PREFIX; private readonly ALERTS_CACHE_PREFIX; constructor(schedulerRegistry: SchedulerRegistry, locationsService: LocationsService, providerRegistry: WeatherProviderRegistryService, configService: ConfigService, eventEmitter: EventEmitter2, historyService: WeatherHistoryService, cacheManager: Cache); onApplicationBootstrap(): void; getAllWeather(force?: boolean): Promise; getPrimaryLocationId(): string | null; getPrimaryWeather(force?: boolean): Promise; getWeather(locationId: string, force?: boolean): Promise; getCurrentWeather(locationId: string, force?: boolean): Promise; getForecastWeather(locationId: string, force?: boolean): Promise; getHourlyForecast(locationId: string, force?: boolean): Promise; getAlerts(locationId: string, force?: boolean): Promise; supportsAlerts(_locationId: string): boolean; checkAlertsSupported(locationId: string): Promise; refreshAllWeather(): Promise; handleConfigurationUpdatedEvent(): void; handleLocationChangedEvent(location: WeatherLocationEntity): Promise; handleLocationDeletedEvent(payload: { id: string; }): Promise; private getWeatherForLocation; private fetchCurrentWeather; private fetchForecastWeather; private fetchHourlyForecast; private fetchAlerts; private clearLocationCache; }