var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/solution/BookingByStep/types.ts
var types_exports = {};
__export(types_exports, {
  BookingByStepHooks: () => BookingByStepHooks,
  createModule: () => createModule
});
module.exports = __toCommonJS(types_exports);
var import_modules = require("../../modules");
function createModule(moduleName, solutionName, name, version) {
  switch (moduleName) {
    case "cart":
      return new import_modules.CartModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "summary":
      return new import_modules.SummaryModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "salesSummary":
      return new import_modules.SalesSummaryModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "step":
      return new import_modules.StepModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "products":
      return new import_modules.ProductList(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "date":
      return new import_modules.DateModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "accountList":
      return new import_modules.AccountListModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "order":
      return new import_modules.OrderModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "payment":
      return new import_modules.PaymentModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "schedule":
      return new import_modules.ScheduleModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    case "scanOrderLogger":
      return new import_modules.ScanOrderLoggerModule(
        `${solutionName}_${name || moduleName}`,
        version
      );
    default:
      throw new Error(`Unknown module type: ${moduleName}`);
  }
}
var BookingByStepHooks = /* @__PURE__ */ ((BookingByStepHooks2) => {
  BookingByStepHooks2["onInited"] = "bookingByStep:onInited";
  BookingByStepHooks2["onDestroy"] = "bookingByStep:onDestroy";
  BookingByStepHooks2["onProductsLoaded"] = "bookingByStep:onProductsLoaded";
  BookingByStepHooks2["onGuestsLoaded"] = "bookingByStep:onGuestsLoaded";
  BookingByStepHooks2["onDateLoaded"] = "bookingByStep:onDateLoaded";
  BookingByStepHooks2["onResourcesLoaded"] = "bookingByStep:onResourcesLoaded";
  BookingByStepHooks2["onAccountLoaded"] = "bookingByStep:onAccountLoaded";
  return BookingByStepHooks2;
})(BookingByStepHooks || {});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  BookingByStepHooks,
  createModule
});
