export interface RequestBookingRequest {
    companyID: string;
    resourceID: string;
    serviceID: string;
    startTime: string;
    spots?: number;
    duration?: string;
    metaData?: {
        [key: string]: any;
    };
    pluginData?: {
        [key: string]: any;
    };
    customPurchaseDescription?: string;
    client?: {
        id?: string;
        booklaID?: string;
        firstName?: string;
        lastName?: string;
        email: string;
    };
    code?: string;
}
export interface CancelBookingRequest {
    reason: string;
    notifyCustomer?: boolean;
}
export interface GetTimesRequest {
    from: string;
    to: string;
    duration?: string;
    resourceIDs?: string[];
    spots?: number;
    tickets?: {
        [ticketID: string]: number;
    };
}
export interface GetDatesRequest {
    from: string;
    to: string;
    duration?: string;
    resourceIDs?: string[];
    spots?: number;
    tickets?: {
        [ticketID: string]: number;
    };
}
export interface AddToCartRequest {
    items: Array<{
        subscriptionID: string;
        metaData?: {
            [key: string]: any;
        };
    }>;
}
export interface RenewPurchasesRequest {
    ids: string[];
}
export interface CreateSubscriptionPurchaseRequest {
    items: Array<{
        subscriptionID: string;
        metaData?: {
            [key: string]: any;
        };
    }>;
    client?: {
        id?: string;
        booklaID?: string;
        firstName?: string;
        lastName?: string;
        email: string;
    };
}
export interface CodeValidateRequest {
    companyID: string;
    serviceID: string;
    resourceID: string;
    startTime: string;
    duration?: string;
    spots: number;
    tickets?: Record<string, number>;
}
