export declare type TElevation = 'bot' | 'mid' | 'top';
export declare type TDay = 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday';
export declare type TTimePeriods = 'AM' | 'PM' | 'night';
export declare type TUnits = 'metric' | 'imperial';
export declare type TWindDirection = '';
export declare type TIssuedDate = string;
export declare type TUrl = string;
export declare type TResortName = string;
export declare type TSnowRequestError = string;
export declare type TSnowRequestMessage = string;
export interface ISnowRequest {
    parseResort: (resort: TResortName, elevation: TElevation, cb: any, opts?: IParseOptions) => IRequestError | IForecast | undefined;
}
export interface IParseOptions {
    inMetric?: boolean;
    proxyOpts?: object;
    proxyUrl?: string;
}
export interface IRequestError {
    url: TUrl;
    error: TSnowRequestError;
    message: TSnowRequestMessage;
}
export interface IForecastRequest {
    resort: TResortName;
    url: TUrl;
    elevation: TElevation;
    issuedDate: TIssuedDate;
    lastUpdateDate: string;
    startDay: TDay;
    isMetric: boolean;
}
export interface IForecastCell {
    date: string;
    time: string;
    summary: string;
    wind: number;
    windDirection: string;
    snow: number;
    rain: number;
    freezingLevel: number;
    minTemp: number;
    maxTemp: number;
    windChill: number;
}
export interface IForecast {
    error?: IRequestError;
    name: TResortName;
    url: TUrl;
    issuedDate: TIssuedDate;
    elevation: TElevation;
    units: TUnits;
    forecast: IForecastCell[];
}
export interface ITimeUtil {
    times: TTimePeriods[];
    days: TDay[];
    currentDayOffset: number;
    MIN_DAY_STRING_LEN: number;
    MAX_INDEX_CNT: number;
    getTime: (timePeriodIndex: number, startDay: string, index: number) => string;
    getTimeOffset: (startTime: TTimePeriods) => number;
    getDayOffset: (startDay: string, timePeriodIndex: number, index: number) => number;
    getDay: (lastUpdateDate: string, timePeriodIndex: number, index: number) => string;
    getCorrectDay: (day: string) => TDay;
    fixIssueDateFormat: (issuedDate: string) => string;
    getPrevDay: (startDay: TDay) => TDay;
}
export interface IUnitUtil {
    TO_MPH: number;
    TO_KPH: number;
    TO_CM: number;
    TO_IN: number;
    TO_FT: number;
    TO_M: number;
    speedToMetric: (speed: number) => number;
    speedToImperial: (speed: number) => number;
    distanceToMetric: (distance: number) => number;
    distanceToImperial: (distance: number) => number;
    volumeToMetric: (volume: number) => number;
    volumeToImperial: (volume: number) => number;
    temperatureToMetric: (temperature: number) => number;
    temperatureToImperial: (temperature: number) => number;
}
