import { z } from 'zod';

/**
 * Input schema for AlertAreas endpoint
 *
 * Return list of areas and associated IDs
 */
declare const mapAreasInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type MapAreasInput = z.infer<typeof mapAreasInputSchema>;

/**
 * Schema for Area - represents a map area
 *
 * Return list of areas and associated IDs
 */
declare const areaSchema: z.ZodObject<{
    MapArea: z.ZodNullable<z.ZodString>;
    MapAreaDescription: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    MapArea: string | null;
    MapAreaDescription: string | null;
}, {
    MapArea: string | null;
    MapAreaDescription: string | null;
}>;
type Area = z.infer<typeof areaSchema>;

/**
 * Input schema for EventCategories endpoint
 *
 * Selects an array of valid categories to use with SearchAlerts
 */
declare const eventCategoriesInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type EventCategoriesInput = z.infer<typeof eventCategoriesInputSchema>;

/**
 * Input schema for HighwayAlerts endpoint
 *
 * Retrieves an array of currently active incidents
 */
declare const alertsInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type AlertsInput = z.infer<typeof alertsInputSchema>;
/**
 * Input schema for HighwayAlert endpoint
 *
 * Retrieves a specific incident
 */
declare const alertByIdInputSchema: z.ZodObject<{
    AlertID: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    AlertID: number;
}, {
    AlertID: number;
}>;
type AlertByIdInput = z.infer<typeof alertByIdInputSchema>;
/**
 * Input schema for HighwayAlertsSearch endpoint
 *
 * Retrieves an array of incidents that match certain criteria
 */
declare const searchAlertsInputSchema: z.ZodObject<{
    StateRoute: z.ZodOptional<z.ZodString>;
    Region: z.ZodOptional<z.ZodNumber>;
    SearchTimeStart: z.ZodOptional<z.ZodString>;
    SearchTimeEnd: z.ZodOptional<z.ZodString>;
    StartingMilepost: z.ZodOptional<z.ZodNumber>;
    EndingMilepost: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    StateRoute?: string | undefined;
    Region?: number | undefined;
    SearchTimeStart?: string | undefined;
    SearchTimeEnd?: string | undefined;
    StartingMilepost?: number | undefined;
    EndingMilepost?: number | undefined;
}, {
    StateRoute?: string | undefined;
    Region?: number | undefined;
    SearchTimeStart?: string | undefined;
    SearchTimeEnd?: string | undefined;
    StartingMilepost?: number | undefined;
    EndingMilepost?: number | undefined;
}>;
type SearchAlertsInput = z.infer<typeof searchAlertsInputSchema>;
/**
 * Input schema for HighwayAlertsByMapArea endpoint
 *
 * Return alerts for a specific area
 */
declare const alertsByMapAreaInputSchema: z.ZodObject<{
    MapArea: z.ZodString;
}, "strip", z.ZodTypeAny, {
    MapArea: string;
}, {
    MapArea: string;
}>;
type AlertsByMapAreaInput = z.infer<typeof alertsByMapAreaInputSchema>;
/**
 * Input schema for HighwayAlertsByRegionID endpoint
 *
 * Return alerts for a specific region
 */
declare const alertsByRegionIDInputSchema: z.ZodObject<{
    RegionID: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    RegionID: number;
}, {
    RegionID: number;
}>;
type AlertsByRegionIDInput = z.infer<typeof alertsByRegionIDInputSchema>;

/**
 * Schema for Alert - represents a Highway Alert
 *
 * A Highway Alert.
 */
declare const alertSchema: z.ZodObject<{
    AlertID: z.ZodNumber;
    County: z.ZodNullable<z.ZodString>;
    EndRoadwayLocation: z.ZodNullable<z.ZodObject<{
        Description: z.ZodNullable<z.ZodString>;
        Direction: z.ZodNullable<z.ZodString>;
        Latitude: z.ZodNumber;
        Longitude: z.ZodNumber;
        MilePost: z.ZodNumber;
        RoadName: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    }, {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    }>>;
    EndTime: z.ZodNullable<z.ZodDate>;
    EventCategory: z.ZodNullable<z.ZodString>;
    EventStatus: z.ZodNullable<z.ZodString>;
    ExtendedDescription: z.ZodNullable<z.ZodString>;
    HeadlineDescription: z.ZodNullable<z.ZodString>;
    LastUpdatedTime: z.ZodNullable<z.ZodDate>;
    Priority: z.ZodNullable<z.ZodString>;
    Region: z.ZodNullable<z.ZodString>;
    StartRoadwayLocation: z.ZodNullable<z.ZodObject<{
        Description: z.ZodNullable<z.ZodString>;
        Direction: z.ZodNullable<z.ZodString>;
        Latitude: z.ZodNumber;
        Longitude: z.ZodNumber;
        MilePost: z.ZodNumber;
        RoadName: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    }, {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    }>>;
    StartTime: z.ZodNullable<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
    EndRoadwayLocation: {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    } | null;
    StartRoadwayLocation: {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    } | null;
    AlertID: number;
    Region: string | null;
    County: string | null;
    EndTime: Date | null;
    EventCategory: string | null;
    EventStatus: string | null;
    ExtendedDescription: string | null;
    HeadlineDescription: string | null;
    LastUpdatedTime: Date | null;
    Priority: string | null;
    StartTime: Date | null;
}, {
    EndRoadwayLocation: {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    } | null;
    StartRoadwayLocation: {
        Description: string | null;
        Direction: string | null;
        Latitude: number;
        Longitude: number;
        MilePost: number;
        RoadName: string | null;
    } | null;
    AlertID: number;
    Region: string | null;
    County: string | null;
    EndTime: Date | null;
    EventCategory: string | null;
    EventStatus: string | null;
    ExtendedDescription: string | null;
    HeadlineDescription: string | null;
    LastUpdatedTime: Date | null;
    Priority: string | null;
    StartTime: Date | null;
}>;
type Alert = z.infer<typeof alertSchema>;

export { type Alert, type AlertByIdInput, type AlertsByMapAreaInput, type AlertsByRegionIDInput, type AlertsInput, type Area, type EventCategoriesInput, type MapAreasInput, type SearchAlertsInput, alertByIdInputSchema, alertSchema, alertsByMapAreaInputSchema, alertsByRegionIDInputSchema, alertsInputSchema, areaSchema, eventCategoriesInputSchema, mapAreasInputSchema, searchAlertsInputSchema };
