/**
 * Weather service options for configuration
 */
export interface WeatherOptions {
    apiKey?: string;
    baseUrl?: string;
    units?: 'metric' | 'imperial';
    language?: string;
    maxRetries?: number;
    timeout?: number;
    rejectUnauthorized?: boolean;
    port?: string;
}
/**
 * Current Weather Data structure
 */
export interface WeatherData {
    location: {
        name: string;
        country: string;
        coordinates: {
            lat: number;
            lon: number;
        };
    };
    temperature: {
        current: number;
        feelsLike: number;
        min: number;
        max: number;
    };
    weather: {
        main: string;
        description: string;
        icon: string;
    };
    wind: {
        speed: number;
        direction: number;
    };
    details: {
        humidity: number;
        pressure: number;
        visibility: number;
        sunrise: Date;
        sunset: Date;
    };
    updatedAt: Date;
    raw: any;
}
/**
 * Weather forecast data structure
 */
export interface ForecastData {
    city: {
        name: string;
        country: string;
        coordinates: {
            lat: number;
            lon: number;
        };
    };
    forecasts: Array<DailyForecast>;
    raw: any;
}
/**
 * Daily weather forecast
 */
export interface DailyForecast {
    date: Date;
    temperature: {
        min: number;
        max: number;
        avg: number;
    };
    weather: {
        main: string;
        description: string;
        icon: string;
    };
    wind: {
        speed: number;
        direction: number;
    };
    details: {
        humidity: number;
        pressure: number;
    };
    hourlyForecasts: Array<HourlyForecast>;
}
/**
 * Hourly weather forecast
 */
export interface HourlyForecast {
    time: Date;
    temperature: number;
    feelsLike: number;
    weather: {
        main: string;
        description: string;
        icon: string;
    };
    wind: {
        speed: number;
        direction: number;
    };
    details: {
        humidity: number;
        pressure: number;
    };
}
/**
 * OpenWeatherMap API error response
 */
export interface WeatherError extends Error {
    code?: string;
    statusCode?: number;
    isWeatherError: boolean;
}
//# sourceMappingURL=index.d.ts.map