import { z } from "zod";
import type { Surcharge } from "./types.ts";
export interface HolidaySurchargeProfile {
    region: string;
    /** Surcharges when the flight date is a public holiday */
    holidaySurcharges: Surcharge[];
    /** Surcharges when the next day is a public holiday (pre-holiday) */
    preHolidaySurcharges: Surcharge[];
    /** Surcharges when the previous day is a public holiday (post-holiday) */
    postHolidaySurcharges: Surcharge[];
}
export declare const HolidaySurchargeProfileSchema: z.ZodObject<{
    region: z.ZodString;
    holidaySurcharges: z.ZodArray<z.ZodObject<{
        code: z.ZodString;
        name: z.ZodString;
        amount: z.ZodNumber;
        currency: z.ZodString;
    }, z.core.$strip>>;
    preHolidaySurcharges: z.ZodArray<z.ZodObject<{
        code: z.ZodString;
        name: z.ZodString;
        amount: z.ZodNumber;
        currency: z.ZodString;
    }, z.core.$strip>>;
    postHolidaySurcharges: z.ZodArray<z.ZodObject<{
        code: z.ZodString;
        name: z.ZodString;
        amount: z.ZodNumber;
        currency: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const AU_HOLIDAY_SURCHARGE: HolidaySurchargeProfile;
export declare const US_HOLIDAY_SURCHARGE: HolidaySurchargeProfile;
export declare const UK_HOLIDAY_SURCHARGE: HolidaySurchargeProfile;
export declare function registerHolidaySurchargeProfile(profile: HolidaySurchargeProfile): void;
/**
 * Resolve holiday surcharges for a flight date and region.
 *
 * Calls `isHolidayAffected()` to determine the impact type, then looks up
 * the appropriate surcharges from the registered profile (or a custom one).
 * Returns an empty array if the date is not holiday-affected.
 */
export declare function resolveHolidaySurcharges(date: string, // YYYY-MM-DD
region: string, currency: string, profile?: HolidaySurchargeProfile): Surcharge[];
//# sourceMappingURL=holiday-surcharges.d.ts.map