/**
 *
 * Describes how far in advance rider can book:
 * 0 - Real-time
 * 1 - Same-day (with advance notice)
 * 2 - Prior day(s)
 */
export declare enum GTFSBookingType {
    RealTime = 0,
    SameDay = 1,
    PriorDays = 2
}
/**
 * # Booking Rules
 *
 * **Optional**
 * Defines rules for booking rider-requested services. Useful when a trip or stop_time requires
 * advanced scheduling (e.g., dial-a-ride, on-demand pickup).
 *
 * **Primary Key**: (booking_rule_id)
 */
export declare class GTFSBookingRule {
    /**
     * **Required**
     * Identifies a booking rule (`booking_rule_id`).
     */
    id: string;
    /**
     * **Required**
     * Indicates how far in advance booking can be made.
     * 0 = Real-time, 1 = Same-day, 2 = Prior-day(s)
     */
    bookingType: GTFSBookingType;
    /**
     * **Conditionally Required**
     * Minimum number of minutes before travel to make the request.
     * Required for booking_type=1; forbidden otherwise.
     */
    priorNoticeDurationMin?: number;
    /**
     * **Conditionally Forbidden**
     * Maximum number of minutes before travel to make the same-day request.
     * - Forbidden for booking_type=0 or booking_type=2
     * - Optional for booking_type=1
     */
    priorNoticeDurationMax?: number;
    /**
     * **Conditionally Required**
     * Last day before travel to make booking request. E.g., 1 = 1 day in advance.
     * Required for booking_type=2; forbidden otherwise.
     */
    priorNoticeLastDay?: number;
    /**
     * **Conditionally Required**
     * Last time on the last day before travel to make booking request, e.g. "17:00:00".
     * Required if prior_notice_last_day is defined; forbidden otherwise.
     */
    priorNoticeLastTime?: string;
    /**
     * **Conditionally Forbidden**
     * Earliest day before travel to make booking request.
     * - Forbidden for booking_type=0.
     * - Forbidden for booking_type=1 if prior_notice_duration_max is defined.
     * - Optional otherwise (mainly for booking_type=2).
     */
    priorNoticeStartDay?: number;
    /**
     * **Conditionally Required**
     * Earliest time on the earliest day before travel, e.g. "00:00:00".
     * Required if prior_notice_start_day is defined; forbidden otherwise.
     */
    priorNoticeStartTime?: string;
    /**
     * **Conditionally Forbidden**
     * Service days on which last_day / start_day are counted (`calendar.service_id`).
     * - Optional if booking_type=2.
     * - Forbidden otherwise.
     */
    priorNoticeServiceId?: string;
    /**
     * **Optional**
     * Generic message to riders for on-demand booking instructions.
     */
    message?: string;
    /**
     * **Optional**
     * Message for on-demand pickup instructions.
     */
    pickupMessage?: string;
    /**
     * **Optional**
     * Message for on-demand drop-off instructions.
     */
    dropOffMessage?: string;
    /**
     * **Optional**
     * Phone number riders call to make the booking request.
     */
    phoneNumber?: string;
    /**
     * **Optional**
     * URL providing additional booking info.
     */
    infoUrl?: string;
    /**
     * **Optional**
     * URL to an online interface or app to make a booking request.
     */
    bookingUrl?: string;
    /** @param data - the parsed GTFS CSV data */
    constructor(data: Record<string, string>);
}
/**
 * @param input - the input string to parse from
 * @returns - an array of BookingRules
 */
export declare function parseGTFSBookingRules(input: string): Record<string, GTFSBookingRule>;
//# sourceMappingURL=bookingRules.d.ts.map