import Accessor from "@arcgis/core/core/Accessor.js";
import WeatherResponse from "../model/weather-response";
export interface IWeatherWidgetParameters {
    weatherAPI: string | undefined;
    weatherURL: string | undefined;
    view: __esri.MapView | __esri.SceneView | undefined;
}
export declare const weatherType: {
    SUNNY: string;
    FOGGY: string;
    CLOUDY: string;
    RAINY: string;
    SNOWY: string;
};
interface IWeatherCondition {
    code: number;
    day: string;
    night: string;
    icon: number;
    esriCode: string;
}
export declare const weatherMatch: Array<IWeatherCondition>;
export default class WeatherWidgetViewModel extends Accessor {
    currentWeather: WeatherResponse | undefined;
    weatherAPI: string | undefined;
    weatherURL: string | undefined;
    environment: {} | undefined;
    view: __esri.MapView | __esri.SceneView | undefined;
    time: string;
    constructor(params?: IWeatherWidgetParameters);
    setEnvironment: () => void;
    getCloud: () => number;
    getFogCover: () => number;
    getPrecipitation: (weatherCondition: IWeatherCondition) => 100 | 0 | 90 | 60 | 30;
    getWeather: () => {
        type: string;
        cloudCover: number;
        fogStrength?: undefined;
        precipitation?: undefined;
        snowCover?: undefined;
    } | {
        type: string;
        fogStrength: number;
        cloudCover?: undefined;
        precipitation?: undefined;
        snowCover?: undefined;
    } | {
        type: string;
        cloudCover: number;
        precipitation: number;
        fogStrength?: undefined;
        snowCover?: undefined;
    } | {
        type: string;
        snowCover: string;
        cloudCover: number;
        precipitation: number;
        fogStrength?: undefined;
    };
    getLatestWeather: (lat: number, long: number) => Promise<boolean>;
}
export {};
