nimbus-weather-cli
Version:
Get instant weather forecasts and AI-powered insights from your terminal using natural language queries.
198 lines • 4.72 kB
TypeScript
import { z } from "zod";
export declare const WeatherIntentSchema: z.ZodObject<{
cities: z.ZodArray<z.ZodString, "many">;
date: z.ZodObject<{
kind: z.ZodEnum<["today", "tomorrow", "range"]>;
days: z.ZodOptional<z.ZodNumber>;
weekend: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
kind: "today" | "tomorrow" | "range";
days?: number | undefined;
weekend?: boolean | undefined;
}, {
kind: "today" | "tomorrow" | "range";
days?: number | undefined;
weekend?: boolean | undefined;
}>;
units: z.ZodDefault<z.ZodEnum<["metric", "imperial"]>>;
extras: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
useIpLocation: z.ZodDefault<z.ZodBoolean>;
compare: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
units: "imperial" | "metric";
cities: string[];
date: {
kind: "today" | "tomorrow" | "range";
days?: number | undefined;
weekend?: boolean | undefined;
};
useIpLocation: boolean;
compare: boolean;
extras?: string[] | undefined;
}, {
cities: string[];
date: {
kind: "today" | "tomorrow" | "range";
days?: number | undefined;
weekend?: boolean | undefined;
};
units?: "imperial" | "metric" | undefined;
extras?: string[] | undefined;
useIpLocation?: boolean | undefined;
compare?: boolean | undefined;
}>;
export type WeatherIntent = z.infer<typeof WeatherIntentSchema>;
export interface OpenWeatherCurrent {
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 OpenWeatherForecast {
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?: {
"3h": number;
};
snow?: {
"3h": 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 WeatherData {
city: string;
country: string;
current?: {
temperature: number;
feelsLike: number;
humidity: number;
pressure: number;
visibility: number;
windSpeed: number;
windDirection: number;
description: string;
icon: string;
main: string;
timestamp: Date;
};
forecast?: Array<{
date: Date;
temperature: {
min: number;
max: number;
};
description: string;
icon: string;
main: string;
humidity: number;
windSpeed: number;
precipitationProbability: number;
}>;
}
export interface GeoLocation {
city: string;
country: string;
region: string;
lat: number;
lon: number;
timezone: string;
}
export interface Config {
openaiApiKey: string;
openweatherApiKey: string;
debug: boolean;
timeout: number;
retries: number;
}
export interface WeatherSummary {
briefing: string;
tips: string[];
}
export interface CliOptions {
debug?: boolean;
units?: "metric" | "imperial";
format?: "detailed" | "simple";
}
//# sourceMappingURL=index.d.ts.map