/**
 * Basic Avail Request Payload
 */
export interface IRequestBasicAvailPayloadOptions {
    hotelCode: number;
    currency: string;
    lang: string;
    dateIn: string;
    dateOut: string;
    multiRoomOccupancy: IBasicAvailRoomOccupancy[];
    bookerIdentifier?: string;
    partnerIdentifier?: string;
    ratePlanCode?: number;
    ratePlanType?: string;
    roomTypeCode?: number;
    corpCode?: string;
    taCode?: string;
    discountCode?: string;
    reservationCode?: number;
    loyaltyTierId?: number;
    roomSequenceNumber?: any;
    groupCode?: string;
    roomCategoryId?: string;
}
export interface IBasicAvailRoomOccupancy {
    adults: number;
    infant: number;
    children: number;
    childrenAges?: string;
}
/**
 * Basic Avail Response
 */
export interface IBasicAvailAPIResponse {
    hotelCode: number;
    currencyCode: string;
    dates: IBasicAvailDates[];
}
export interface IBasicAvailDates {
    date: string;
    isAvailable: boolean;
    rate: IRateDetails;
    availability: IAvailabilityStatus[];
    lengthOfStay: ILengthOfStay;
}
export interface ILengthOfStay {
    maxLOS?: number;
    maxLOSType?: string;
    minLOS?: number;
    minLOSType?: string;
}
export interface IRateDetails {
    discountOnLowestMinRate: number;
    minRate: number;
    lowestMinRate: number;
    discount: number;
    ratePlanCurrency: string;
    ratePlanCode: string;
    ratePlanType: string;
    roomExternalCode: string;
    roomTypeCode: string;
}
export interface IAvailabilityStatus {
    availStatus: string;
}
