"use strict";

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. 2018, 2020
 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 */

/**
 * @class InternalAPI
 * @hideconstructor
 * @classdesc Internal API class that is used to control a dashboard instance behaviour
 */
define([], function () {
	var InternalAPI = function () {
		function InternalAPI() {
			_classCallCheck(this, InternalAPI);
		}

		/**
   * @function InternalAPI#reloadFromJSONSpec
   * @description Reload the dashboard with the given dashboard spec
   * @param {object} spec the new dashboard spec to load
   * @param {object} [options] reload options
   * @param {boolean} [options.isAuthoringMode] true to reload the dashboard in authoring mode, otherwise false
   * @param {boolean} [options.clearDirtyFlag] true to mark dashboard as clean, otherwise false
   */
		InternalAPI.prototype.reloadFromJSONSpec = function reloadFromJSONSpec() {};

		/**
   * @function InternalAPI#getWidgetRegistry
   * @description Get the widget registry
   * @return {object} Collection of entries from the widget registry
   * @example
  {
  widget-identifier: {
  	id: 'widget unique identifier',
  	label: 'widget display label',
  	builtin: true if widget is an builtin widget otherwise false,
  	modelClassPath: 'path of the widget model class',
  	widget: 'path of the widget class',
  	layoutConsumeView: 'path of the widget layout consumption view class',
  	layoutAuthoringView: 'path of the widget layout authoring view class',
  	disableTitle: true if widget title is not supported, otherwise false,
  	createContentNode: true if widget requires a separate div to separate the widget content,
  	enableSmarts: true, // need to revise
  	ownTitle: false // need to revise
  },
  ...
  }
   */


		InternalAPI.prototype.getWidgetRegistry = function getWidgetRegistry() {};

		/**
   * @function InternalAPI#getDashboardInfo
   * @description Get the dashboard internal information
   * @return {object} collection of dashboard information
   * @example
  {
  boardId: 'CM object identifier of the dashboard',
  searchPath: 'CM object search path',
  type': 'exploration',
  isDirty: true if the dashboard model has changed otherwise false
  }
   */


		InternalAPI.prototype.getDashboardInfo = function getDashboardInfo() {};

		/**
   * @function InternalAPI#prepareGlassOptions
   * @description Modify the given option object to be consumable by Glass
   * @param {object} option option object
   * @return {object} option object consumable by Glass
   */


		InternalAPI.prototype.prepareGlassOptions = function prepareGlassOptions() {};

		/**
   * @function InternalAPI#getCDNUrl
   * @description Get the dashboard internal CDN root path
   * @return dashboard internal CDN root path
   */


		InternalAPI.prototype.getCDNUrl = function getCDNUrl() {};

		/**
   * @function InternalAPI#isDevInstall
   * @description Determine whether the dashboard is currently running in development mode
   * @return true if dashboard is currently in development mode, otherwise false
   */


		InternalAPI.prototype.isDevInstall = function isDevInstall() {};

		/**
   * @function InternalAPI#registerDashboardSvc
   * @description Register a new service to dashboard
   * @param {object} service new service to register to dashboard
   */


		InternalAPI.prototype.registerDashboardSvc = function registerDashboardSvc() {};

		/**
   * @function InternalAPI#setPermissions
   * @description Set the CM object permisssion to the dashboard
   * @param {object} permission CM object permission response
   */


		InternalAPI.prototype.setPermissions = function setPermissions() {};

		/**
   * @function InternalAPI#destroy
   * @description destroys the dashboard
   */


		InternalAPI.prototype.destroy = function destroy() {};

		return InternalAPI;
	}();

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