import { BookingCreateApiGuestsListInner } from './BookingCreateApiGuestsListInner';
import { ContactPersonApi } from './ContactPersonApi';
import { PaymentMethodRequestApi } from './PaymentMethodRequestApi';
/**
 *
 * @export
 * @interface BookingCreateApi
 */
export interface BookingCreateApi {
    /**
     * Booking policy id to book, returned from previous **[Create Booking Policies endpoint](/v1/documentation#operation/postV1Booking_policies)** call
     * @type {string}
     * @memberof BookingCreateApi
     */
    bookingPolicyId: string;
    /**
     *
     * @type {ContactPersonApi}
     * @memberof BookingCreateApi
     */
    contactPerson: ContactPersonApi;
    /**
     *
     * @type {Array<BookingCreateApiGuestsListInner>}
     * @memberof BookingCreateApi
     */
    guestsList?: Array<BookingCreateApiGuestsListInner>;
    /**
     * You can use this parameter to attach key-value data to bookings. Metadata is useful for storing additional, structured information on a booking. As an example, you could store your user's full name and corresponding unique identifier from your system on a booking. Metadata is not used internally by the Booking Engine and won't be seen by your users unless you choose to show it to them.
     * @type {{ [key: string]: string; }}
     * @memberof BookingCreateApi
     */
    metadata?: {
        [key: string]: string;
    } | null;
    /**
     * List of preferred payment methods to be used along with their respective payload (when applicable) in order to fulfill the booking.
     * @type {Array<PaymentMethodRequestApi>}
     * @memberof BookingCreateApi
     */
    paymentMethods?: Array<PaymentMethodRequestApi>;
    /**
     *
     * @type {string}
     * @memberof BookingCreateApi
     */
    trackingId?: string | null;
}
/**
 * Check if a given object implements the BookingCreateApi interface.
 */
export declare function instanceOfBookingCreateApi(value: object): boolean;
export declare function BookingCreateApiFromJSON(json: any): BookingCreateApi;
export declare function BookingCreateApiFromJSONTyped(json: any, ignoreDiscriminator: boolean): BookingCreateApi;
export declare function BookingCreateApiToJSON(value?: BookingCreateApi | null): any;
