import { SignInUser } from '../contexts/index.js';
import { IBookingPayment, ReservationsDTO } from '@roomstay/core';
import dayjs from 'dayjs';
import type BasketRow from './BasketRow';
import type { IRoom } from './Room/Room';
import type { IRoomRate } from './Room/RoomRate';
import UserProfile from './UserProfile';
/**
 * Booking engine state object, that is stored, can be loaded and unloaded
 */
export type RoomstaySession = {
    id: number;
    step: string;
    startDate: dayjs.Dayjs | null;
    endDate: dayjs.Dayjs | null;
    hotelID: number | string;
    source: string;
    user?: SignInUser;
    memberId?: string;
    pencilId?: string;
    basketRows: BasketRow[];
    reservationRequest?: {
        userProfiles: UserProfile[];
        payment: IBookingPayment;
        comments: string;
        eta?: string;
    };
    reservation?: ReservationsDTO;
};
export type SerializedRoomstaySession = {
    id: number;
    step: string;
    startDate: string;
    endDate: string;
    hotelID: number | string;
    source: string;
    user?: string;
    memberId?: string;
    basketRows: SerializedRoomstaySessionBasketRow[];
    reservation?: ReservationsDTO;
    reservationRequest?: RoomstaySession['reservationRequest'];
};
export type SerializedRoomstaySessionBasketRow = {
    uniqId: string;
    startDate: string;
    endDate: string;
    adults: number;
    children: number;
    infants: number;
    promoCode: string;
    promoCodeStatus: string;
    room: IRoom;
    rate: IRoomRate;
};
export declare const SERIALIZED_DATE_FORMAT = "YYYY/MM/DD";
