export interface Forecast { coord: { lon: number; lat: number; }; weather: Array<{ id: number; main: string; description: string; icon: string; }>; base: string; main: { temp: number; feels_like: number; temp_min: number; temp_max: number; pressure: number; humidity: number; }; visibility: number; wind: { speed: number; deg: number; }; clouds: { all: number; }; dt: number; sys: { type: number; id: number; country: string; sunrise: number; sunset: number; }; timezone: number; id: number; name: string; cod: number; } export interface HourlyForecast { cod: string; message: number; cnt: number; list: Array<{ dt: number; main: { temp: number; feels_like: number; temp_min: number; temp_max: number; pressure: number; sea_level: number; grnd_level: number; humidity: number; temp_kf: number; }; weather: Array<{ id: number; main: string; description: string; icon: string; }>; clouds: { all: number; }; wind: { speed: number; deg: number; gust: number; }; visibility: number; pop: number; rain?: { "1h": number; }; sys: { pod: string; }; dt_txt: string; }>; city: { id: number; name: string; coord: { lat: number; lon: number; }; country: string; population: number; timezone: number; sunrise: number; sunset: number; }; } export interface LocationType { results: { address_components: { long_name: string; short_name: string; types: string[]; }[]; formatted_address: string; geometry: { bounds: { northeast: { lat: number; lng: number; }; southwest: { lat: number; lng: number; }; }; location: { lat: number; lng: number; }; location_type: string; viewport: { northeast: { lat: number; lng: number; }; southwest: { lat: number; lng: number; }; }; }; place_id: string; types: string[]; }[]; status: string; } export interface coordType { lat: number; lng: number; } export type EffectCallback = () => void | (() => void | undefined); export interface TempInfo { temp: number; feels_like: number; temp_min: number; temp_max: number; pressure: number; humidity: number; } export interface LocationContextType { geoLocation: coordType; setGeoLocation: React.Dispatch>; }