'use strict';

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
 * Licensed Materials - Property of IBM
 * IBM Business Analytics (C) Copyright IBM Corp. 2019, 2020
 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 */

/**
 * @class QueryService2API
 * @hideconstructor
 * @classdesc API class that is used to support the creation of QueryAPI2
 */
define([], function () {
	var QueryService2API = function () {
		function QueryService2API() {
			_classCallCheck(this, QueryService2API);
		}

		/**
   * @function QueryServiceAPI#registerQueryClass
   * @description Register a Class which implements QueryAPI2
   * @public
   *
   * @param {String} queryProtocol - the protocol of query
   * @param {Class} QueryClass - a Class which implements QueryAPI2
   */
		QueryService2API.prototype.registerQueryClass = function registerQueryClass() {};

		/**
   * @function QueryServiceAPI#createQueryDefinition
   * @description Creates and returns a QueryDefinitionAPI object to construct queries
   * @public
   *
   * @param {String} id
   * @param {String} type
   * @return {QueryServiceAPI}
   */


		QueryService2API.prototype.createQueryDefinition = function createQueryDefinition() {};

		/**
   * @function QueryServiceAPI#createQueryV2
   * @description Creates and returns a QueryAPI2 object to run queries
   * @public
   *
   * @param {QueryDefinitionAPI} definition The QueryDefinition to use in the Query
   * @param {String} queryProtocol The protocol to create
   * @return {Query2API} Returns a Query2API object
   */


		QueryService2API.prototype.createQuery = function createQuery() {};

		_createClass(QueryService2API, null, [{
			key: 'TYPE',


			/**
    * @public
    * @readonly
    * @description Enumeration of Query type
    * @enum {String}
    * @memberof QueryServiceAPI
    */
			get: function get() {
				return {
					/** default */
					DEFAULT: undefined,
					/** min / max query */
					MINMAX: 'minmax',
					/** unaggregated detail query */
					DETAIL: 'detail'
				};
			}
		}]);

		return QueryService2API;
	}();

	return QueryService2API;
});
//# sourceMappingURL=QueryService2API.js.map