import { CancellationPolicyApi } from './CancellationPolicyApi';
import { CurrencyClient } from './CurrencyClient';
import { HotelRoomOfferApi } from './HotelRoomOfferApi';
/**
 *
 * @export
 * @interface BookingPoliciesApi
 */
export interface BookingPoliciesApi {
    /**
     * The total number of adults who will be staying in the property.
     * @type {number}
     * @memberof BookingPoliciesApi
     */
    adultCount: number;
    /**
     * The list of cancellation policy date range with their corresponding penalty percentage.
     * @type {Array<CancellationPolicyApi>}
     * @memberof BookingPoliciesApi
     */
    cancellationPolicies: Array<CancellationPolicyApi>;
    /**
     * Date of check-in formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof BookingPoliciesApi
     */
    checkInDate: string;
    /**
     * Date of check-out formatted as YYYY-MM-DD.
     * @type {string}
     * @memberof BookingPoliciesApi
     */
    checkOutDate: string;
    /**
     * A comma-separated list of child ages (0 up to 17). e.g.: "3,7" represents 2 children respectively 3 and 7 years old.
     * @type {string}
     * @memberof BookingPoliciesApi
     */
    children?: string | null;
    /**
     *
     * @type {CurrencyClient}
     * @memberof BookingPoliciesApi
     */
    currency: CurrencyClient;
    /**
     * Expiration date for this **Booking Policy**.
     *
     * The returned  **Booking Policy** (price and cancellation policies) is valid bookable policy up to this **expires_at** date, while it may be valid for a longer period in the case of some suppliers, this API call is equivalent to an availability check and it is important not to let long periods between retrieval of this policy and the booking confirmation call itself as this will often reduce the likelihood of a **Hotel Room Offer** being successfully booked.
     * @type {Date}
     * @memberof BookingPoliciesApi
     */
    expiresAt: Date | null;
    /**
     *
     * @type {boolean}
     * @memberof BookingPoliciesApi
     */
    hasRoomingLists: boolean;
    /**
     * Hotel id
     * @type {string}
     * @memberof BookingPoliciesApi
     */
    hotelId: string;
    /**
     *
     * @type {HotelRoomOfferApi}
     * @memberof BookingPoliciesApi
     */
    hotelRoomOffer: HotelRoomOfferApi;
    /**
     * **Booking Policy** id
     * @type {string}
     * @memberof BookingPoliciesApi
     */
    id: string;
    /**
     * Indicates whether the price of the **Hotel Room Offer** (without breakfast included) has increased compared to the price returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers).
     *
     * In some case, the returned price may increase for various reasons including: Currency rate change between the POST **Booking Policies** call and the GET **Hotel Room Offers** call, **Hotel Room Offer** price has increased since the GET **Hotel Room Offers** call.
     *
     * If **is_price_increased** is **true**, it means that the actual/updated price of the **Hotel Room Offer** is greater than the price previously returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers). If **is_price_increased** is **false**, the price of the **Hotel Room Offer** is equal to the price returned by [Retrieve Hotel Room Offers endpoint](/v1/documentation#operation/getV1Hotel_room_offers).
     *
     * ⚠️ It is strongly advised to clearly inform your customer of any price increase that may occur.
     * @type {boolean}
     * @memberof BookingPoliciesApi
     */
    isPriceIncreased: boolean;
}
/**
 * Check if a given object implements the BookingPoliciesApi interface.
 */
export declare function instanceOfBookingPoliciesApi(value: object): boolean;
export declare function BookingPoliciesApiFromJSON(json: any): BookingPoliciesApi;
export declare function BookingPoliciesApiFromJSONTyped(json: any, ignoreDiscriminator: boolean): BookingPoliciesApi;
export declare function BookingPoliciesApiToJSON(value?: BookingPoliciesApi | null): any;
