/**
* @namespace typedef
* @memberof Help4
*/
/**
* @typedef {Object} Help4.typedef.HotspotSize
* @property {string} size
* @property {number} radius
* @property {number} icon
* @property {string} localization
*/
/**
* @typedef {Object} Help4.typedef.CoreConfiguration
* @property {?string} customTheme - custom base theme
* @property {{uacp: string, wpb: string}} defaultLanguage
* @property {boolean} editor - user has editor permission
* @property {number} infoBarTimeout
* @property {number} infoBarTimeoutError
* @property {number} infoBarTimeoutWhatsNew
* @property {boolean} isActiveCMP4 - whether CMP4 mode is active
* @property {boolean} isEditMode - edit mode information
* @property {boolean} isEditorView - information about author view (published view / author view)
* @property {boolean} isRemoteMode - DA/WA mode enabled
* @property {{_: string, uacp: string, wpb: string}} language - language
* @property {boolean} mixedLanguages - allow mixed languages within tour and learning content
* @property {string} languageFallbackMode - allow mixed languages within help content, values allowed - standard/mix and defaults to standard
* @property {boolean} mobile - mobile mode enabled
* @property {boolean} multifile - allow multifile requests to SEN servers
* @property {string} noHelpMode - what happens in case of no help
* @property {boolean} showMinimizeButton - show minimize button on panel
* @property {boolean} showCloseButton - show close button on panel
* @property {string} openImmediately - open panel immediately
* @property {string} playbackTag - what tag to use for playback; default: "published"
* @property {string} product - product
* @property {boolean} readCatalogue
* @property {string} resourceUrl - URL to all CMP resources
* @property {?string} role - role of user
* @property {boolean} rtl - enable RTL mode
* @property {string} screenId - screen ID
* @property {string} solution - for tracking purposes
* @property {?string} system - system
* @property {string} theme - theme name
* @property {string} tenant - tenant info; only for public s/4 cloud customers
* @property {string} version - version
* @property {boolean} recentlyClosed
*/
/**
* @typedef {Object} Help4.typedef.BPMConfiguration
* @property {?string} arisBaseUrl - base URL to ARIS server
* @property {?string} arisTenant - ARIS tenant ID
*/
/**
* @typedef {Object} Help4.typedef.BrandingConfiguration
* @property {?string} logoSrc
* @property {?string} logoUrl
*/
/**
* @typedef {Object} Help4.typedef.LearningConfiguration
* @property {boolean} enabled - enable learning mode
* @property {?string} learningAppBackendUrl - URL to SEN server
* @property {?string} learningAppCommunityUrl - external URL to community
* @property {boolean} learningAppFeedback - enable feedback
* @property {?string} learningAppProjectMode - what project mode to use for learning
* @property {?string} learningAppWorkspace - workspace id on SEN server
* @property {?string} learningCenterUrl - URL to external learning center
* @property {boolean} showLearningCenter - whether to show learning center
*/
/**
* @typedef {Object} Help4.typedef.TrackingConfiguration
* @property {?string} trackingUrlSEN - URL of SEN server that receives tracking information
*/
/**
* @typedef {Object} Help4.typedef.HelpConfiguration
* @property {?string} autoStartTour - tour to be auto-started on CMP boot
* @property {?string} featureProfileUACP - will be send as "profile" to UACP server
* @property {?string} mediaUrl - URl to resolve media from UACP against
* @property {*} published - ???
* @property {'uacp'|'wpb'} roModel - RO model information
* @property {'uacp'|'wpb'} rwModel - RW model information
* @property {boolean} showLaserBeam - show laser beam in help mode
* @property {boolean} showShortDescription - whether to show description in tiles
* @property {'uacp'|'wpb'|'ext'} serviceLayer - backend mode selection (UACP only, SEN only, mixed mode)
* @property {string} serviceUrl - URL to RO backend
* @property {?string} serviceUrl2 - URL to RW backend
* @property {boolean} useGlobalHelp - whether global help feature is enabled
* @property {?string} fioriApplication - fioriApplication identifier
* @property {*} whatsNew - ???
* @property {boolean} whatsNewDirect - play whatsnew immediately
* @property {number} whatsNewExpiration - whatsnew expiration date
* @property {boolean} useABAPHelpTexts - enable UR texts for WDA, SAP GUI, etc. in Fiori
* @property {boolean} useURHotspots - enable UR hotspots for new content (XRAY-6405) - implicit with useABAPHelpTexts
* @property {boolean} useUI5HelpTexts
*/
/**
* @typedef {Object} Help4.typedef.FeatureConfiguration
* @property {boolean} enableFioriSpacesMigration - XRAY-5098
*/
/**
* @typedef {Object} Help4.typedef.TranslationConfiguration
* @property {boolean} activeMLTranslation - MLT enabled
* @property {boolean} allowMLTranslations - ???
* @property {boolean} translationAvailable - ???
*/
/**
* @typedef {Object} Help4.typedef.SystemConfiguration
* @property {boolean} CMP4 - CMP4 mode enabled
* @property {number} WM - WalkMe support mode
* @property {Help4.typedef.CoreConfiguration} core - core configuration
* @property {Help4.typedef.LearningConfiguration} learning - learning configuration
* @property {Help4.typedef.TrackingConfiguration} tracking - tracking configuration
* @property {Help4.typedef.HelpConfiguration} help - help & tour configuration
* @property {Help4.typedef.FeatureConfiguration} features - feature configuration
* @property {Help4.typedef.TranslationConfiguration} translation - translation configuration
* @property {Help4.typedef.BPMConfiguration} bpm - BPM configuration
* @property {Help4.typedef.BrandingConfiguration} branding - Branding configuration
*/
/**
* iterates an array
* @typedef {Function} Help4.typedef.MapExecutor
* @param {*} item - the current item
* @param {number} index - the current index
* @param {Array<*>} array - the iterated array
* @param {Object} [scope] - scope the iterator runs in
*/
/**
* iterates an array
* @typedef {Function} Help4.typedef.ForEachExecutor
* @param {*} item - the current item
* @param {number} index - the current index
* @param {Array<*>} array - the iterated array
* @param {Object} [scope] - scope the iterator runs in
*/
/**
* iterates an array
* @typedef {Function} Help4.typedef.EveryExecutor
* @param {*} item - the current item
* @param {number} index - the current index
* @param {Array<*>} array - the iterated array
* @param {Object} [scope] - scope the iterator runs in
* @returns {boolean}
*/
/**
* response of an XHR request
* @typedef {Object} Help4.typedef.XmlHttpResponse
* @property {number} status - xhr.status
* @property {string} statusText - xhr.statusText
* @property {string} responseText - xhr.responseText
* @property {?XMLDocument} responseXML - xhr.responseXML
* @property {boolean} [hasTimeout = false] - did a timeout occur?
*/
/**
* @typedef {'once'|'always'} Help4.typedef.SplashOption
*/
/**
* @typedef {
* 'noicon'|
* 'whatsthisapp'|
* 'link'|
* 'video'|
* 'prerequisites'|
* 'faq'|
* 'pdf'|
* 'external'|
* 'support'
* } Help4.typedef.TileIcons
*/
/**
* @typedef {'auto'|'W'|'N'|'S'|'E'} Help4.typedef.BubbleOrientation
*/
/**
* @typedef {
* 'start'|
* 'end'|
* 'important'|
* 'info'|
* 'note'|
* 'tip'|
* 'action'
* } Help4.typedef.BubbleType
*/
/**
* @typedef {
* 'default'|
* 'expand'|
* 'fade'|
* 'pulse'|
* 'scaleup'|
* 'shake'|
* 'shrink'|
* 'wobble'
* } Help4.typedef.BubbleAnimationType
*/
/**
* @typedef {
* 'attachment'|
* 'help'|
* 'info'|
* 'learn'|
* 'link'|
* 'news'|
* 'step'|
* 'star'|
* 'support'|
* 'tip'|
* 'tour'|
* 'whatsnew'|
* 'change'|
* 'compliance'|
* 'maintain'|
* 'note'|
* 'update'|
* 'warning'
* } Help4.typedef.HotspotIconType
*/
/**
* @typedef {'R'|'Q'|'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'I'|'J'|'K'|'L'|'M'|'N'|'O'|'P'} Help4.typedef.HotspotIconPosition
*/