import { z } from "zod";
export declare const FareTypeSchema: z.ZodEnum<{
    "one-way": "one-way";
    return: "return";
    "multi-city": "multi-city";
}>;
export type FareType = z.infer<typeof FareTypeSchema>;
export declare const CabinClassSchema: z.ZodEnum<{
    economy: "economy";
    business: "business";
    "premium-economy": "premium-economy";
    first: "first";
}>;
export type CabinClass = z.infer<typeof CabinClassSchema>;
export declare const FareComponentSchema: z.ZodObject<{
    origin: z.ZodString;
    destination: z.ZodString;
    fareClass: z.ZodString;
    fareBasisCode: z.ZodString;
    baseAmount: z.ZodNumber;
    currency: z.ZodString;
}, z.core.$strip>;
export type FareComponent = z.infer<typeof FareComponentSchema>;
export declare const TaxLineSchema: z.ZodObject<{
    code: z.ZodString;
    name: z.ZodString;
    amount: z.ZodNumber;
    currency: z.ZodString;
    jurisdiction: z.ZodString;
}, z.core.$strip>;
export type TaxLine = z.infer<typeof TaxLineSchema>;
export declare const SurchargeSchema: z.ZodObject<{
    code: z.ZodString;
    name: z.ZodString;
    amount: z.ZodNumber;
    currency: z.ZodString;
}, z.core.$strip>;
export type Surcharge = z.infer<typeof SurchargeSchema>;
export declare const FareQuoteSchema: z.ZodObject<{
    fareType: z.ZodEnum<{
        "one-way": "one-way";
        return: "return";
        "multi-city": "multi-city";
    }>;
    cabinClass: z.ZodEnum<{
        economy: "economy";
        business: "business";
        "premium-economy": "premium-economy";
        first: "first";
    }>;
    components: z.ZodArray<z.ZodObject<{
        origin: z.ZodString;
        destination: z.ZodString;
        fareClass: z.ZodString;
        fareBasisCode: z.ZodString;
        baseAmount: z.ZodNumber;
        currency: z.ZodString;
    }, z.core.$strip>>;
    baseAmount: z.ZodNumber;
    surcharges: z.ZodDefault<z.ZodArray<z.ZodObject<{
        code: z.ZodString;
        name: z.ZodString;
        amount: z.ZodNumber;
        currency: z.ZodString;
    }, z.core.$strip>>>;
    taxes: z.ZodDefault<z.ZodArray<z.ZodObject<{
        code: z.ZodString;
        name: z.ZodString;
        amount: z.ZodNumber;
        currency: z.ZodString;
        jurisdiction: z.ZodString;
    }, z.core.$strip>>>;
    totalAmount: z.ZodNumber;
    currency: z.ZodString;
    fareConstruction: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type FareQuote = z.infer<typeof FareQuoteSchema>;
export declare const FareRuleCategorySchema: z.ZodEnum<{
    1: "1";
    2: "2";
    3: "3";
    4: "4";
    5: "5";
    6: "6";
    7: "7";
    8: "8";
    9: "9";
    10: "10";
    11: "11";
    20: "20";
    12: "12";
    13: "13";
    14: "14";
    15: "15";
    16: "16";
    17: "17";
    18: "18";
    19: "19";
    21: "21";
    22: "22";
    23: "23";
    25: "25";
    26: "26";
    27: "27";
    28: "28";
    31: "31";
    33: "33";
    35: "35";
    50: "50";
}>;
export type FareRuleCategory = z.infer<typeof FareRuleCategorySchema>;
export declare const FareRuleSchema: z.ZodObject<{
    category: z.ZodEnum<{
        1: "1";
        2: "2";
        3: "3";
        4: "4";
        5: "5";
        6: "6";
        7: "7";
        8: "8";
        9: "9";
        10: "10";
        11: "11";
        20: "20";
        12: "12";
        13: "13";
        14: "14";
        15: "15";
        16: "16";
        17: "17";
        18: "18";
        19: "19";
        21: "21";
        22: "22";
        23: "23";
        25: "25";
        26: "26";
        27: "27";
        28: "28";
        31: "31";
        33: "33";
        35: "35";
        50: "50";
    }>;
    categoryName: z.ZodString;
    conditions: z.ZodDefault<z.ZodArray<z.ZodString>>;
    rawText: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type FareRule = z.infer<typeof FareRuleSchema>;
export declare const FareValidationResultSchema: z.ZodObject<{
    valid: z.ZodBoolean;
    violations: z.ZodDefault<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<{
            1: "1";
            2: "2";
            3: "3";
            4: "4";
            5: "5";
            6: "6";
            7: "7";
            8: "8";
            9: "9";
            10: "10";
            11: "11";
            20: "20";
            12: "12";
            13: "13";
            14: "14";
            15: "15";
            16: "16";
            17: "17";
            18: "18";
            19: "19";
            21: "21";
            22: "22";
            23: "23";
            25: "25";
            26: "26";
            27: "27";
            28: "28";
            31: "31";
            33: "33";
            35: "35";
            50: "50";
        }>;
        message: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type FareValidationResult = z.infer<typeof FareValidationResultSchema>;
//# sourceMappingURL=types.d.ts.map