export interface Coord {
    lon: number;
    lat: number;
}

export interface Weather {
    id: number;
    main: string;
    description: string;
    icon: string;
}

export interface Main {
    temp: number;
    pressure: number;
    humidity: number;
    temp_min: number;
    temp_max: number;
}

export interface Wind {
    speed: number;
    deg: number;
}

export interface Clouds {
    all: number;
}

export interface Sys {
    type?: number;
    id?: number;
    message?: number;
    country: string;
    sunrise?: number;
    sunset?: number;
}

export interface WeatherData {
    status?: string;
    coord: Coord;
    weather: Weather[];
    base: string;
    main: Main;
    visibility: number;
    wind: Wind;
    clouds: Clouds;
    dt: number;
    sys: Sys;
    id: number;
    name: string;
    cod: number;
}

export interface WeatherOutput {
    type: string;
    type_description: string;
    sunrise: string;
    sunset: string;
    temp: number;
    temp_min: number;
    temp_max: number;
    pressure: number;
    humidity: number;
    clouds_percent: number;
    wind_speed: number;
}

export interface List {
    id: number;
    name: string;
    coord: Coord;
    main: Main;
    dt: number;
    wind: Wind;
    sys: Sys;
    rain?: any;
    snow?: any;
    clouds: Clouds;
    weather: Weather[];
}

export interface GeonamesWithWeather {
    message: string;
    cod: string;
    count: number;
    list: List[];
}