import { z } from "zod";
export declare const DoopPatternSchema: z.ZodString;
export type DoopPattern = z.infer<typeof DoopPatternSchema>;
export declare const DAY_NAMES: readonly ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
/** Build a DOOP pattern from an array of day indices (1=Mon, 7=Sun). */
export declare function dayOfWeekPattern(days: number[]): DoopPattern;
/** Check if a DOOP pattern operates on a given day index (1=Mon, 7=Sun). */
export declare function operatesOnDay(pattern: DoopPattern, day: number): boolean;
/** Get array of operating day indices from a DOOP pattern. */
export declare function operatingDays(pattern: DoopPattern): number[];
export declare const ServiceTypeSchema: z.ZodEnum<{
    J: "J";
    C: "C";
    F: "F";
    P: "P";
    G: "G";
    K: "K";
    L: "L";
    M: "M";
}>;
export type ServiceType = z.infer<typeof ServiceTypeSchema>;
export declare const SERVICE_TYPE_NAMES: Record<ServiceType, string>;
export declare const SeasonCodeSchema: z.ZodString;
export type SeasonCode = z.infer<typeof SeasonCodeSchema>;
export declare const SeasonDefinitionSchema: z.ZodObject<{
    code: z.ZodString;
    startDate: z.ZodString;
    endDate: z.ZodString;
    name: z.ZodString;
}, z.core.$strip>;
export type SeasonDefinition = z.infer<typeof SeasonDefinitionSchema>;
export declare const ScheduleEntrySchema: z.ZodObject<{
    airline: z.ZodString;
    flightNumber: z.ZodString;
    origin: z.ZodString;
    destination: z.ZodString;
    departureTimeUtc: z.ZodString;
    arrivalTimeUtc: z.ZodString;
    doop: z.ZodString;
    serviceType: z.ZodDefault<z.ZodEnum<{
        J: "J";
        C: "C";
        F: "F";
        P: "P";
        G: "G";
        K: "K";
        L: "L";
        M: "M";
    }>>;
    periodStart: z.ZodString;
    periodEnd: z.ZodString;
    aircraftType: z.ZodOptional<z.ZodString>;
    bookingClasses: z.ZodDefault<z.ZodArray<z.ZodString>>;
    seasonCode: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ScheduleEntry = z.infer<typeof ScheduleEntrySchema>;
export declare const RbdAvailabilitySchema: z.ZodObject<{
    fareClass: z.ZodString;
    seatsAvailable: z.ZodNumber;
}, z.core.$strip>;
export type RbdAvailability = z.infer<typeof RbdAvailabilitySchema>;
export declare const AvailabilityStatusSchema: z.ZodEnum<{
    available: "available";
    "not-available": "not-available";
    request: "request";
    waitlist: "waitlist";
    "waitlist-closed": "waitlist-closed";
}>;
export type AvailabilityStatus = z.infer<typeof AvailabilityStatusSchema>;
export declare const FlightAvailabilitySchema: z.ZodObject<{
    airline: z.ZodString;
    flightNumber: z.ZodString;
    origin: z.ZodString;
    destination: z.ZodString;
    departureDate: z.ZodString;
    rbdAvailability: z.ZodArray<z.ZodObject<{
        fareClass: z.ZodString;
        seatsAvailable: z.ZodNumber;
    }, z.core.$strip>>;
    status: z.ZodDefault<z.ZodEnum<{
        available: "available";
        "not-available": "not-available";
        request: "request";
        waitlist: "waitlist";
        "waitlist-closed": "waitlist-closed";
    }>>;
}, z.core.$strip>;
export type FlightAvailability = z.infer<typeof FlightAvailabilitySchema>;
export declare const BlackoutRangeSchema: z.ZodObject<{
    startDate: z.ZodString;
    endDate: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type BlackoutRange = z.infer<typeof BlackoutRangeSchema>;
export declare const HolidayImpactSchema: z.ZodEnum<{
    none: "none";
    holiday: "holiday";
    "pre-holiday": "pre-holiday";
    "post-holiday": "post-holiday";
}>;
export type HolidayImpact = z.infer<typeof HolidayImpactSchema>;
export declare const HolidayWarningSchema: z.ZodObject<{
    date: z.ZodString;
    name: z.ZodString;
    impact: z.ZodEnum<{
        none: "none";
        holiday: "holiday";
        "pre-holiday": "pre-holiday";
        "post-holiday": "post-holiday";
    }>;
}, z.core.$strip>;
export type HolidayWarning = z.infer<typeof HolidayWarningSchema>;
export declare const ScheduleLookupResultSchema: z.ZodObject<{
    entries: z.ZodArray<z.ZodObject<{
        airline: z.ZodString;
        flightNumber: z.ZodString;
        origin: z.ZodString;
        destination: z.ZodString;
        departureTimeUtc: z.ZodString;
        arrivalTimeUtc: z.ZodString;
        doop: z.ZodString;
        serviceType: z.ZodDefault<z.ZodEnum<{
            J: "J";
            C: "C";
            F: "F";
            P: "P";
            G: "G";
            K: "K";
            L: "L";
            M: "M";
        }>>;
        periodStart: z.ZodString;
        periodEnd: z.ZodString;
        aircraftType: z.ZodOptional<z.ZodString>;
        bookingClasses: z.ZodDefault<z.ZodArray<z.ZodString>>;
        seasonCode: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    blackoutDates: z.ZodDefault<z.ZodArray<z.ZodObject<{
        startDate: z.ZodString;
        endDate: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    season: z.ZodOptional<z.ZodObject<{
        code: z.ZodString;
        startDate: z.ZodString;
        endDate: z.ZodString;
        name: z.ZodString;
    }, z.core.$strip>>;
    holidayWarnings: z.ZodDefault<z.ZodArray<z.ZodObject<{
        date: z.ZodString;
        name: z.ZodString;
        impact: z.ZodEnum<{
            none: "none";
            holiday: "holiday";
            "pre-holiday": "pre-holiday";
            "post-holiday": "post-holiday";
        }>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type ScheduleLookupResult = z.infer<typeof ScheduleLookupResultSchema>;
//# sourceMappingURL=types.d.ts.map