import { z } from 'zod';

/**
 * GetSubSurfaceMeasurements input schema
 *
 * Input parameters for getting subsurface measurements.
 */
declare const subSurfaceMeasurementsInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type SubSurfaceMeasurementsInput = z.infer<typeof subSurfaceMeasurementsInputSchema>;

/**
 * ScanwebSubSurfaceMeasurements schema
 *
 * Provides current information from weather stations. Coverage Area: Statewide.
 */
declare const subsurfaceMeasurementSchema: z.ZodObject<{
    SensorId: z.ZodOptional<z.ZodNumber>;
    SubSurfaceTemperature: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    SensorId?: number | undefined;
    SubSurfaceTemperature?: number | undefined;
}, {
    SensorId?: number | undefined;
    SubSurfaceTemperature?: number | undefined;
}>;
type SubsurfaceMeasurement = z.infer<typeof subsurfaceMeasurementSchema>;

/**
 * GetSurfaceMeasurements input schema
 *
 * Input parameters for getting surface measurements.
 */
declare const surfaceMeasurementsInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type SurfaceMeasurementsInput = z.infer<typeof surfaceMeasurementsInputSchema>;

/**
 * ScanwebSurfaceMeasurements schema
 *
 * Provides current information from weather stations. Coverage Area: Statewide.
 */
declare const surfaceMeasurementSchema: z.ZodObject<{
    SensorId: z.ZodOptional<z.ZodNumber>;
    SurfaceTemperature: z.ZodOptional<z.ZodNumber>;
    RoadFreezingTemperature: z.ZodOptional<z.ZodNumber>;
    RoadSurfaceCondition: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    SensorId?: number | undefined;
    SurfaceTemperature?: number | undefined;
    RoadFreezingTemperature?: number | undefined;
    RoadSurfaceCondition?: number | undefined;
}, {
    SensorId?: number | undefined;
    SurfaceTemperature?: number | undefined;
    RoadFreezingTemperature?: number | undefined;
    RoadSurfaceCondition?: number | undefined;
}>;
type SurfaceMeasurement = z.infer<typeof surfaceMeasurementSchema>;

/**
 * GetWeatherReadings input schema
 *
 * Input parameters for getting weather readings.
 */
declare const weatherReadingsInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type WeatherReadingsInput = z.infer<typeof weatherReadingsInputSchema>;

/**
 * WeatherReading schema
 *
 * Provides current information from weather stations. Coverage Area: Statewide.
 */
declare const weatherReadingSchema: z.ZodObject<{
    StationId: z.ZodString;
    StationName: z.ZodString;
    Latitude: z.ZodNumber;
    Longitude: z.ZodNumber;
    Elevation: z.ZodNumber;
    ReadingTime: z.ZodNullable<z.ZodDate>;
    AirTemperature: z.ZodNullable<z.ZodNumber>;
    RelativeHumidty: z.ZodNullable<z.ZodNumber>;
    AverageWindSpeed: z.ZodNullable<z.ZodNumber>;
    AverageWindDirection: z.ZodNullable<z.ZodNumber>;
    WindGust: z.ZodNullable<z.ZodNumber>;
    Visibility: z.ZodNullable<z.ZodNumber>;
    PrecipitationIntensity: z.ZodNullable<z.ZodNumber>;
    PrecipitationType: z.ZodNullable<z.ZodNumber>;
    PrecipitationPast1Hour: z.ZodNullable<z.ZodNumber>;
    PrecipitationPast3Hours: z.ZodNullable<z.ZodNumber>;
    PrecipitationPast6Hours: z.ZodNullable<z.ZodNumber>;
    PrecipitationPast12Hours: z.ZodNullable<z.ZodNumber>;
    PrecipitationPast24Hours: z.ZodNullable<z.ZodNumber>;
    PrecipitationAccumulation: z.ZodNullable<z.ZodNumber>;
    BarometricPressure: z.ZodNullable<z.ZodNumber>;
    SnowDepth: z.ZodNullable<z.ZodNumber>;
    SurfaceMeasurements: z.ZodNullable<z.ZodArray<z.ZodObject<{
        SensorId: z.ZodNumber;
        SurfaceTemperature: z.ZodNullable<z.ZodNumber>;
        RoadFreezingTemperature: z.ZodNullable<z.ZodNumber>;
        RoadSurfaceCondition: z.ZodNullable<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        SensorId: number;
        SurfaceTemperature: number | null;
        RoadFreezingTemperature: number | null;
        RoadSurfaceCondition: number | null;
    }, {
        SensorId: number;
        SurfaceTemperature: number | null;
        RoadFreezingTemperature: number | null;
        RoadSurfaceCondition: number | null;
    }>, "many">>;
    SubSurfaceMeasurements: z.ZodNullable<z.ZodArray<z.ZodObject<{
        SensorId: z.ZodNumber;
        SubSurfaceTemperature: z.ZodNullable<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        SensorId: number;
        SubSurfaceTemperature: number | null;
    }, {
        SensorId: number;
        SubSurfaceTemperature: number | null;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    Latitude: number;
    Longitude: number;
    StationName: string;
    BarometricPressure: number | null;
    ReadingTime: Date | null;
    Visibility: number | null;
    StationId: string;
    Elevation: number;
    AirTemperature: number | null;
    RelativeHumidty: number | null;
    AverageWindSpeed: number | null;
    AverageWindDirection: number | null;
    WindGust: number | null;
    PrecipitationIntensity: number | null;
    PrecipitationType: number | null;
    PrecipitationPast1Hour: number | null;
    PrecipitationPast3Hours: number | null;
    PrecipitationPast6Hours: number | null;
    PrecipitationPast12Hours: number | null;
    PrecipitationPast24Hours: number | null;
    PrecipitationAccumulation: number | null;
    SnowDepth: number | null;
    SurfaceMeasurements: {
        SensorId: number;
        SurfaceTemperature: number | null;
        RoadFreezingTemperature: number | null;
        RoadSurfaceCondition: number | null;
    }[] | null;
    SubSurfaceMeasurements: {
        SensorId: number;
        SubSurfaceTemperature: number | null;
    }[] | null;
}, {
    Latitude: number;
    Longitude: number;
    StationName: string;
    BarometricPressure: number | null;
    ReadingTime: Date | null;
    Visibility: number | null;
    StationId: string;
    Elevation: number;
    AirTemperature: number | null;
    RelativeHumidty: number | null;
    AverageWindSpeed: number | null;
    AverageWindDirection: number | null;
    WindGust: number | null;
    PrecipitationIntensity: number | null;
    PrecipitationType: number | null;
    PrecipitationPast1Hour: number | null;
    PrecipitationPast3Hours: number | null;
    PrecipitationPast6Hours: number | null;
    PrecipitationPast12Hours: number | null;
    PrecipitationPast24Hours: number | null;
    PrecipitationAccumulation: number | null;
    SnowDepth: number | null;
    SurfaceMeasurements: {
        SensorId: number;
        SurfaceTemperature: number | null;
        RoadFreezingTemperature: number | null;
        RoadSurfaceCondition: number | null;
    }[] | null;
    SubSurfaceMeasurements: {
        SensorId: number;
        SubSurfaceTemperature: number | null;
    }[] | null;
}>;
type WeatherReading = z.infer<typeof weatherReadingSchema>;

export { type SubSurfaceMeasurementsInput, type SubsurfaceMeasurement, type SurfaceMeasurement, type SurfaceMeasurementsInput, type WeatherReading, type WeatherReadingsInput, subSurfaceMeasurementsInputSchema, subsurfaceMeasurementSchema, surfaceMeasurementSchema, surfaceMeasurementsInputSchema, weatherReadingSchema, weatherReadingsInputSchema };
