@webex/internal-plugin-metrics 3.12.0-task-refactor.1 → 3.12.0-webex-services-ready.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/batcher.js +3 -0
  2. package/dist/batcher.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +23 -0
  4. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +68 -50
  6. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  7. package/dist/call-diagnostic/call-diagnostic-metrics.js +60 -8
  8. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  9. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +44 -4
  10. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  11. package/dist/call-diagnostic/config.js +17 -3
  12. package/dist/call-diagnostic/config.js.map +1 -1
  13. package/dist/config.js +1 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/generic-metrics.js +8 -6
  16. package/dist/generic-metrics.js.map +1 -1
  17. package/dist/index.js +7 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/metrics.js +1 -1
  20. package/dist/metrics.types.js.map +1 -1
  21. package/dist/new-metrics.js +56 -20
  22. package/dist/new-metrics.js.map +1 -1
  23. package/dist/prelogin-metrics-batcher.js +23 -0
  24. package/dist/prelogin-metrics-batcher.js.map +1 -1
  25. package/dist/prelogin-metrics.js +106 -0
  26. package/dist/prelogin-metrics.js.map +1 -0
  27. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +9 -0
  28. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +57 -20
  29. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +23 -2
  30. package/dist/types/call-diagnostic/config.d.ts +6 -19
  31. package/dist/types/config.d.ts +16 -15
  32. package/dist/types/index.d.ts +2 -1
  33. package/dist/types/metrics.types.d.ts +4 -4
  34. package/dist/types/new-metrics.d.ts +12 -0
  35. package/dist/types/prelogin-metrics.d.ts +47 -0
  36. package/package.json +11 -11
  37. package/src/batcher.js +4 -0
  38. package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +26 -0
  39. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +139 -70
  40. package/src/call-diagnostic/call-diagnostic-metrics.ts +52 -1
  41. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +49 -2
  42. package/src/call-diagnostic/config.ts +15 -0
  43. package/src/config.js +1 -0
  44. package/src/generic-metrics.ts +6 -6
  45. package/src/index.ts +2 -0
  46. package/src/metrics.types.ts +3 -3
  47. package/src/new-metrics.ts +42 -0
  48. package/src/prelogin-metrics-batcher.ts +26 -0
  49. package/src/prelogin-metrics.ts +94 -0
  50. package/test/unit/spec/batcher.js +43 -0
  51. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +183 -11
  52. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +324 -366
  53. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +724 -159
  54. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +92 -3
  55. package/test/unit/spec/prelogin-metrics-batcher.ts +190 -36
  56. package/test/unit/spec/prelogin-metrics.ts +132 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
11
+ _Object$defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
17
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
19
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
21
+ var _genericMetrics = _interopRequireDefault(require("./generic-metrics"));
22
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
25
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
26
+ /**
27
+ * @description Util class to handle PreLogin Metrics
28
+ * @export
29
+ * @class PreLoginMetrics
30
+ */
31
+ var PreLoginMetrics = exports.default = /*#__PURE__*/function (_GenericMetrics) {
32
+ /**
33
+ * Constructor
34
+ * @param {PreLoginMetricsBatcher} preLoginMetricsBatcher - Pre-login metrics batcher
35
+ * @param {any} attrs - Attributes
36
+ * @param {any} options - Options
37
+ * @constructor
38
+ */
39
+ function PreLoginMetrics(preLoginMetricsBatcher) {
40
+ var _this;
41
+ var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
43
+ (0, _classCallCheck2.default)(this, PreLoginMetrics);
44
+ _this = _callSuper(this, PreLoginMetrics, [attrs, options]);
45
+ (0, _defineProperty2.default)(_this, "preLoginMetricsBatcher", void 0);
46
+ _this.preLoginMetricsBatcher = preLoginMetricsBatcher;
47
+ return _this;
48
+ }
49
+
50
+ /**
51
+ * Submit a business metric to our metrics endpoint.
52
+ * Routes to the correct table with the correct schema payload by table.
53
+ * @see https://confluence-eng-gpk2.cisco.com/conf/display/WAP/Business+metrics++-%3E+ROMA
54
+ * @param {Object} options - The options object
55
+ * @param {string} options.name - Name of the metric
56
+ * @param {string} options.preLoginId - ID to identify pre-login user
57
+ * @param {EventPayload} options.payload - User payload of the metric
58
+ * @param {EventPayload} [options.metadata] - Optional metadata to include outside of eventPayload.value
59
+ * @returns {Promise<void>} Promise that resolves when the metric is submitted
60
+ */
61
+ (0, _inherits2.default)(PreLoginMetrics, _GenericMetrics);
62
+ return (0, _createClass2.default)(PreLoginMetrics, [{
63
+ key: "submitPreLoginEvent",
64
+ value: function submitPreLoginEvent(_ref) {
65
+ var name = _ref.name,
66
+ preLoginId = _ref.preLoginId,
67
+ payload = _ref.payload,
68
+ metadata = _ref.metadata;
69
+ if (!metadata) {
70
+ metadata = {};
71
+ }
72
+ if (!metadata.appType) {
73
+ metadata.appType = 'Web Client';
74
+ }
75
+ var finalEvent = this.buildEvent(name, preLoginId, payload, metadata);
76
+ this.preLoginMetricsBatcher.savePreLoginId(preLoginId);
77
+ return this.preLoginMetricsBatcher.request(finalEvent);
78
+ }
79
+
80
+ /**
81
+ * Builds a formatted event object for metrics submission.
82
+ * @param {string} metricName - Metric name
83
+ * @param {string} preLoginId - Pre-login user identifier
84
+ * @param {EventPayload} payload - Metric payload data
85
+ * @param {EventPayload} metadata - Additional metadata to include in the event
86
+ * @returns {object} Formatted metrics event object with type, eventPayload, and timestamp
87
+ */
88
+ }, {
89
+ key: "buildEvent",
90
+ value: function buildEvent(metricName, preLoginId, payload, metadata) {
91
+ return {
92
+ type: ['business'],
93
+ eventPayload: {
94
+ metricName: metricName,
95
+ browserDetails: this.getBrowserDetails(),
96
+ context: this.getContext(),
97
+ timestamp: new Date().getTime(),
98
+ value: _objectSpread(_objectSpread({
99
+ preLoginId: preLoginId
100
+ }, metadata), payload)
101
+ }
102
+ };
103
+ }
104
+ }]);
105
+ }(_genericMetrics.default);
106
+ //# sourceMappingURL=prelogin-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_genericMetrics","_interopRequireDefault","require","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","PreLoginMetrics","exports","_GenericMetrics","preLoginMetricsBatcher","_this","attrs","undefined","options","_classCallCheck2","_inherits2","_createClass2","key","value","submitPreLoginEvent","_ref","name","preLoginId","payload","metadata","appType","finalEvent","buildEvent","savePreLoginId","request","metricName","type","eventPayload","browserDetails","getBrowserDetails","context","getContext","timestamp","Date","getTime","GenericMetrics"],"sources":["prelogin-metrics.ts"],"sourcesContent":["import GenericMetrics from './generic-metrics';\nimport {BusinessEvent, EventPayload} from './metrics.types';\nimport PreLoginMetricsBatcher from './prelogin-metrics-batcher';\n\n/**\n * @description Util class to handle PreLogin Metrics\n * @export\n * @class PreLoginMetrics\n */\nexport default class PreLoginMetrics extends GenericMetrics {\n private preLoginMetricsBatcher: typeof PreLoginMetricsBatcher;\n\n /**\n * Constructor\n * @param {PreLoginMetricsBatcher} preLoginMetricsBatcher - Pre-login metrics batcher\n * @param {any} attrs - Attributes\n * @param {any} options - Options\n * @constructor\n */\n constructor(\n preLoginMetricsBatcher: typeof PreLoginMetricsBatcher,\n attrs: any = {},\n options: {parent?: any} = {}\n ) {\n super(attrs, options);\n this.preLoginMetricsBatcher = preLoginMetricsBatcher;\n }\n\n /**\n * Submit a business metric to our metrics endpoint.\n * Routes to the correct table with the correct schema payload by table.\n * @see https://confluence-eng-gpk2.cisco.com/conf/display/WAP/Business+metrics++-%3E+ROMA\n * @param {Object} options - The options object\n * @param {string} options.name - Name of the metric\n * @param {string} options.preLoginId - ID to identify pre-login user\n * @param {EventPayload} options.payload - User payload of the metric\n * @param {EventPayload} [options.metadata] - Optional metadata to include outside of eventPayload.value\n * @returns {Promise<void>} Promise that resolves when the metric is submitted\n */\n public submitPreLoginEvent({\n name,\n preLoginId,\n payload,\n metadata,\n }: {\n name: string;\n preLoginId: string;\n payload: EventPayload;\n metadata?: EventPayload;\n }): Promise<void> {\n if (!metadata) {\n metadata = {};\n }\n if (!metadata.appType) {\n metadata.appType = 'Web Client';\n }\n\n const finalEvent = this.buildEvent(name, preLoginId, payload, metadata);\n\n this.preLoginMetricsBatcher.savePreLoginId(preLoginId);\n\n return this.preLoginMetricsBatcher.request(finalEvent);\n }\n\n /**\n * Builds a formatted event object for metrics submission.\n * @param {string} metricName - Metric name\n * @param {string} preLoginId - Pre-login user identifier\n * @param {EventPayload} payload - Metric payload data\n * @param {EventPayload} metadata - Additional metadata to include in the event\n * @returns {object} Formatted metrics event object with type, eventPayload, and timestamp\n */\n private buildEvent(\n metricName: string,\n preLoginId: string,\n payload: EventPayload,\n metadata: EventPayload\n ): BusinessEvent {\n return {\n type: ['business'],\n eventPayload: {\n metricName,\n browserDetails: this.getBrowserDetails(),\n context: this.getContext(),\n timestamp: new Date().getTime(),\n value: {\n preLoginId,\n ...metadata,\n ...payload,\n },\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -149,6 +149,15 @@ export default class CallDiagnosticLatencies extends WebexPlugin {
149
149
  * @returns - latency
150
150
  */
151
151
  getStayLobbyTime(): number;
152
+ /**
153
+ * Stay lobby time capped by a certain timestamp.
154
+ * This is to handle the case where the target end timestamp could happen before the lobby is exited,
155
+ * for example media-engine.ready or client.ice.end
156
+ * This is supposed to be called AFTER the end timestamp happens
157
+ * @param endTimestampKey name of the target end event
158
+ * @returns - latency
159
+ */
160
+ getStayLobbyTimeCappedBy(endTimestampKey: MetricEventNames): number;
152
161
  /**
153
162
  * Page JMT
154
163
  * @returns - latency
@@ -36,6 +36,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
36
36
  private isMercuryConnected;
37
37
  private eventLimitTracker;
38
38
  private eventLimitWarningsLogged;
39
+ private isTelemetryOptOutManual;
40
+ private isTelemetryOptOutAutomatic;
39
41
  validator: (options: {
40
42
  type: 'mqe' | 'ce';
41
43
  event: Event;
@@ -53,6 +55,21 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
53
55
  * @returns one of 'login-ci','unverified-guest', null
54
56
  */
55
57
  getCurLoginType(): "unverified-guest" | "login-ci";
58
+ /**
59
+ * Returns the telemetryOptOut value of the current user
60
+ * @returns one of 'manual', 'automatic', undefined
61
+ */
62
+ getTelemetryOptOut(): "manual" | "automatic";
63
+ /**
64
+ * Sets the manual telemetry opt-out status for the current user
65
+ * @param value - boolean value indicating manual telemetry opt-out status
66
+ */
67
+ setIsTelemetryOptOutManual(value: boolean): void;
68
+ /**
69
+ * Sets the automatic telemetry opt-out status for the current user
70
+ * @param value - boolean value indicating automatic telemetry opt-out status
71
+ */
72
+ setIsTelemetryOptOutAutomatic(value: boolean): void;
56
73
  /**
57
74
  * Returns if the meeting has converged architecture enabled
58
75
  * @param options.meetingId
@@ -80,10 +97,11 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
80
97
  * @returns
81
98
  */
82
99
  getOrigin(options: GetOriginOptions, meetingId?: string): {
83
- name: "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer";
100
+ name: "endpoint" | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer";
84
101
  userAgent: string;
85
102
  buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test";
86
103
  upgradeChannel?: string;
104
+ upgradeSource?: string;
87
105
  instanceId?: string;
88
106
  networkType: "wifi" | "ethernet" | "cellular" | "unknown";
89
107
  localIP?: string;
@@ -92,21 +110,23 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
92
110
  environment?: string;
93
111
  newEnvironment?: string;
94
112
  clientInfo?: {
95
- os?: "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "other" | "uwp-arm64" | "windows";
113
+ os?: "windows" | "mac" | "ios" | "android" | "chrome" | "linux" | "other" | "android-x64" | "android-arm64" | "uwp-arm64";
96
114
  osVersion?: string;
97
115
  localIP?: string;
98
116
  gatewayIP?: string;
99
117
  macAddress?: string;
100
118
  localNetworkPrefix?: string;
101
119
  publicNetworkPrefix?: string;
102
- browserLaunchMethod?: "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "url-handler" | "thinclient" | "switch-to-web" | "switch-to-native";
120
+ browserLaunchMethod?: "url-handler" | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "thinclient" | "switch-to-web" | "switch-to-native";
121
+ cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched";
122
+ cwsVersion?: string;
103
123
  clientLaunchMethod?: "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher";
104
- urlProtocolLaunchMethod?: "auto" | "manual" | "extension-fallback";
124
+ urlProtocolLaunchMethod?: "manual" | "auto" | "extension-fallback";
105
125
  browser?: string;
106
126
  browserVersion?: string;
107
127
  clientType?: "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY";
108
- subClientType?: "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN";
109
- schedulingClientType?: "GOOGLE_ADDON" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "UNIFIED_PAGE" | "WEBEX_PAGE";
128
+ subClientType?: "TEAMS_DEVICE" | "SIP" | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP_PSTN";
129
+ schedulingClientType?: "TEAMS_CLIENT" | "GOOGLE_ADDON" | "PT" | "PUBLIC_API" | "UNIFIED_PAGE" | "WEBEX_PAGE" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN";
110
130
  clientVersion?: string;
111
131
  clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED";
112
132
  localClientVersion?: string;
@@ -132,14 +152,15 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
132
152
  cpuInfo?: {
133
153
  description: string;
134
154
  numberOfCores: number;
135
- architecture: "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "unknown";
155
+ architecture: "unknown" | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32";
136
156
  staticPerformance?: string;
137
157
  clockSpeedGigaHertz?: number;
138
- additionalProperties?: false;
158
+ additionalProperties?: never;
139
159
  };
140
160
  shareType?: "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share";
141
161
  videoDisplayMode?: "grid-view" | "active-speaker-view";
142
- videoLayoutType?: "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare";
162
+ videoLayoutType?: "auto" | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "autoWithShare";
163
+ appliedLayout?: "auto" | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "autoWithShare";
143
164
  videoRenderType?: "wme" | "client_d3d" | "client_gdi";
144
165
  vdiInfo?: {};
145
166
  is64BitsClient?: boolean;
@@ -151,13 +172,16 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
151
172
  vendorId?: string;
152
173
  staticPerformanceLevel?: string;
153
174
  staticPerformanceScore?: number;
154
- additionalProperties?: false;
175
+ preInstalledTime?: string;
176
+ preInstalledType?: "installer" | "launcher" | "app";
177
+ preInstalledVersion?: string;
178
+ additionalProperties?: never;
155
179
  };
156
180
  emmVendorId?: string;
157
181
  isHybridMedia?: boolean;
158
182
  originData?: {};
159
183
  serviceVersion?: string;
160
- additionalProperties?: false;
184
+ additionalProperties?: never;
161
185
  };
162
186
  /**
163
187
  * Gather identifier details for call diagnostic payload.
@@ -171,6 +195,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
171
195
  breakoutGroupId?: string;
172
196
  breakoutMoveId?: string;
173
197
  breakoutSessionId?: string;
198
+ browserId?: string;
174
199
  ciExchangeTokenUrl?: string;
175
200
  confluenceId?: string;
176
201
  cpaasIdentifiers?: {
@@ -180,7 +205,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
180
205
  imiAppId: string;
181
206
  sessionId: string;
182
207
  sessionInstanceId: string;
183
- additionalProperties?: false;
208
+ additionalProperties?: never;
184
209
  };
185
210
  csdmDeviceUrl?: string;
186
211
  destinationBreakoutSessionId?: string;
@@ -196,6 +221,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
196
221
  ivrId?: string;
197
222
  callId?: string;
198
223
  pairCallId?: string;
224
+ llmWebsocketUrl?: string;
225
+ locusCluster?: string;
199
226
  locusId?: string;
200
227
  locusJoinUrl?: string;
201
228
  locusSessionId?: string;
@@ -209,6 +236,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
209
236
  meetingLookupUrl?: string;
210
237
  meetingOrgId?: string;
211
238
  metricServiceUrl?: string;
239
+ mercuryWebsocketUrl?: string;
212
240
  msteamsTenantGuid?: string;
213
241
  msteamsConferenceId?: string;
214
242
  msteamsMeetingId?: string;
@@ -222,7 +250,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
222
250
  sipSessionId?: {
223
251
  local?: string;
224
252
  remote?: string;
225
- additionalProperties?: false;
253
+ additionalProperties?: never;
226
254
  };
227
255
  sipUri?: string;
228
256
  subConfId?: string;
@@ -250,7 +278,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
250
278
  idForEndpointAB?: string;
251
279
  customerOrgId?: string;
252
280
  correlationId: string;
253
- additionalProperties?: false;
281
+ additionalProperties?: never;
254
282
  } | {
255
283
  aggregatedBreakoutMoveId?: string;
256
284
  attendeeId?: string;
@@ -258,6 +286,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
258
286
  breakoutGroupId?: string;
259
287
  breakoutMoveId?: string;
260
288
  breakoutSessionId?: string;
289
+ browserId?: string;
261
290
  ciExchangeTokenUrl?: string;
262
291
  confluenceId?: string;
263
292
  cpaasIdentifiers?: {
@@ -267,7 +296,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
267
296
  imiAppId: string;
268
297
  sessionId: string;
269
298
  sessionInstanceId: string;
270
- additionalProperties?: false;
299
+ additionalProperties?: never;
271
300
  };
272
301
  csdmDeviceUrl?: string;
273
302
  destinationBreakoutSessionId?: string;
@@ -283,6 +312,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
283
312
  ivrId?: string;
284
313
  callId?: string;
285
314
  pairCallId?: string;
315
+ llmWebsocketUrl?: string;
316
+ locusCluster?: string;
286
317
  locusId?: string;
287
318
  locusJoinUrl?: string;
288
319
  locusSessionId?: string;
@@ -296,6 +327,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
296
327
  meetingLookupUrl?: string;
297
328
  meetingOrgId?: string;
298
329
  metricServiceUrl?: string;
330
+ mercuryWebsocketUrl?: string;
299
331
  msteamsTenantGuid?: string;
300
332
  msteamsConferenceId?: string;
301
333
  msteamsMeetingId?: string;
@@ -309,7 +341,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
309
341
  sipSessionId?: {
310
342
  local?: string;
311
343
  remote?: string;
312
- additionalProperties?: false;
344
+ additionalProperties?: never;
313
345
  };
314
346
  sipUri?: string;
315
347
  subConfId?: string;
@@ -337,7 +369,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
337
369
  idForEndpointAB?: string;
338
370
  customerOrgId?: string;
339
371
  correlationId: string;
340
- additionalProperties?: false;
372
+ additionalProperties?: never;
341
373
  } | {
342
374
  aggregatedBreakoutMoveId?: string;
343
375
  attendeeId?: string;
@@ -345,6 +377,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
345
377
  breakoutGroupId?: string;
346
378
  breakoutMoveId?: string;
347
379
  breakoutSessionId?: string;
380
+ browserId?: string;
348
381
  ciExchangeTokenUrl?: string;
349
382
  confluenceId?: string;
350
383
  cpaasIdentifiers?: {
@@ -354,7 +387,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
354
387
  imiAppId: string;
355
388
  sessionId: string;
356
389
  sessionInstanceId: string;
357
- additionalProperties?: false;
390
+ additionalProperties?: never;
358
391
  };
359
392
  csdmDeviceUrl?: string;
360
393
  destinationBreakoutSessionId?: string;
@@ -370,6 +403,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
370
403
  ivrId?: string;
371
404
  callId?: string;
372
405
  pairCallId?: string;
406
+ llmWebsocketUrl?: string;
407
+ locusCluster?: string;
373
408
  locusId?: string;
374
409
  locusJoinUrl?: string;
375
410
  locusSessionId?: string;
@@ -383,6 +418,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
383
418
  meetingLookupUrl?: string;
384
419
  meetingOrgId?: string;
385
420
  metricServiceUrl?: string;
421
+ mercuryWebsocketUrl?: string;
386
422
  msteamsTenantGuid?: string;
387
423
  msteamsConferenceId?: string;
388
424
  msteamsMeetingId?: string;
@@ -396,7 +432,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
396
432
  sipSessionId?: {
397
433
  local?: string;
398
434
  remote?: string;
399
- additionalProperties?: false;
435
+ additionalProperties?: never;
400
436
  };
401
437
  sipUri?: string;
402
438
  subConfId?: string;
@@ -424,7 +460,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
424
460
  idForEndpointAB?: string;
425
461
  customerOrgId?: string;
426
462
  correlationId: string;
427
- additionalProperties?: false;
463
+ additionalProperties?: never;
428
464
  };
429
465
  /**
430
466
  * Create diagnostic event, which can hold client event, feature event or MQE event data.
@@ -595,6 +631,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
595
631
  * Prepare the event and send the request to metrics-a service, pre login.
596
632
  * @param event
597
633
  * @param preLoginId
634
+ * @param markTelemetryOptOutOnResponse
598
635
  * @returns
599
636
  */
600
637
  submitToCallDiagnosticsPreLogin: (event: Event, preLoginId?: string) => Promise<any>;
@@ -59,6 +59,27 @@ export declare const isUnauthorizedError: (rawError: any) => boolean;
59
59
  * @returns {boolean}
60
60
  */
61
61
  export declare const isSdpOfferCreationError: (rawError: any) => boolean;
62
+ export declare const isWebrtcApiNotAvailableError: (rawError: {
63
+ code: number;
64
+ message: string;
65
+ name: string;
66
+ } | unknown) => boolean;
67
+ /**
68
+ * Checks if the given error is a browser media error by its name.
69
+ * Returns true if the error name matches any known browser media error name in the mapping.
70
+ *
71
+ * @param {Object} rawError - The error object to check.
72
+ * @returns {boolean} True if the error is a browser media error, false otherwise.
73
+ */
74
+ export declare const isBrowserMediaError: (rawError: any) => boolean;
75
+ /**
76
+ * Returns the client error code mapped to the given browser media error name.
77
+ * If the error name is not found in the mapping, returns undefined.
78
+ *
79
+ * @param {Object} rawError - The error object containing the error name.
80
+ * @returns {string|undefined} The mapped client error code, or undefined if not found.
81
+ */
82
+ export declare const getBrowserMediaErrorCode: (rawError: any) => number;
62
83
  /**
63
84
  * MDN Media Devices getUserMedia() method returns a name if it errs
64
85
  * Documentation can be found here: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
@@ -72,7 +93,7 @@ export declare const isBrowserMediaErrorName: (errorName: any) => boolean;
72
93
  * @param webClientDomain
73
94
  * @returns
74
95
  */
75
- export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event["origin"]["buildType"];
96
+ export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType'];
76
97
  /**
77
98
  * Prepare metric item for submission.
78
99
  * @param {Object} webex sdk instance
@@ -98,7 +119,7 @@ export declare const extractVersionMetadata: (version: string) => {
98
119
  * that happen when trying to add media in a meeting.
99
120
  */
100
121
  export declare const generateClientErrorCodeForIceFailure: ({ signalingState, iceConnected, turnServerUsed, unreachable, }: {
101
- signalingState: RTCPeerConnection["signalingState"];
122
+ signalingState: RTCPeerConnection['signalingState'];
102
123
  iceConnected: boolean;
103
124
  turnServerUsed: boolean;
104
125
  unreachable: boolean;
@@ -15,25 +15,8 @@ export declare const ICE_AND_REACHABILITY_FAILED_CLIENT_CODE = 2011;
15
15
  export declare const MULTISTREAM_NOT_AVAILABLE_CLIENT_CODE = 2012;
16
16
  export declare const WBX_APP_API_URL = "wbxappapi";
17
17
  export declare const WEBEX_SUB_SERVICE_TYPES: Record<string, ClientSubServiceType>;
18
- declare const BROWSER_MEDIA_ERROR_NAMES: {
19
- PERMISSION_DENIED_ERROR: string;
20
- NOT_ALLOWED_ERROR: string;
21
- NOT_READABLE_ERROR: string;
22
- ABORT_ERROR: string;
23
- NOT_FOUND_ERROR: string;
24
- OVERCONSTRAINED_ERROR: string;
25
- SECURITY_ERROR: string;
26
- TYPE_ERROR: string;
27
- };
28
18
  export declare const BROWSER_MEDIA_ERROR_NAME_TO_CLIENT_ERROR_CODES_MAP: {
29
- [BROWSER_MEDIA_ERROR_NAMES.PERMISSION_DENIED_ERROR]: number;
30
- [BROWSER_MEDIA_ERROR_NAMES.NOT_ALLOWED_ERROR]: number;
31
- [BROWSER_MEDIA_ERROR_NAMES.NOT_READABLE_ERROR]: number;
32
- [BROWSER_MEDIA_ERROR_NAMES.ABORT_ERROR]: number;
33
- [BROWSER_MEDIA_ERROR_NAMES.NOT_FOUND_ERROR]: number;
34
- [BROWSER_MEDIA_ERROR_NAMES.OVERCONSTRAINED_ERROR]: number;
35
- [BROWSER_MEDIA_ERROR_NAMES.SECURITY_ERROR]: number;
36
- [BROWSER_MEDIA_ERROR_NAMES.TYPE_ERROR]: number;
19
+ [x: string]: number;
37
20
  };
38
21
  export declare const SDP_OFFER_CREATION_ERROR_MAP: {
39
22
  GENERAL: number;
@@ -116,13 +99,16 @@ export declare const ERROR_DESCRIPTIONS: {
116
99
  MULTISTREAM_NOT_AVAILABLE: string;
117
100
  SDP_OFFER_CREATION_ERROR: string;
118
101
  SDP_OFFER_CREATION_ERROR_MISSING_CODEC: string;
102
+ WEBRTC_API_NOT_AVAILABLE: string;
119
103
  WDM_RESTRICTED_REGION: string;
120
104
  USER_NOT_ALLOWED_JOIN_WEBINAR: string;
105
+ INVALID_MEETING_INFO: string;
121
106
  };
122
107
  export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
123
108
  58400: number;
124
109
  99002: number;
125
110
  99009: number;
111
+ 99019: number;
126
112
  58500: number;
127
113
  400001: number;
128
114
  403004: number;
@@ -150,6 +136,7 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
150
136
  423001: number;
151
137
  423005: number;
152
138
  423006: number;
139
+ 423008: number;
153
140
  423010: number;
154
141
  423012: number;
155
142
  423013: number;
@@ -163,6 +150,7 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
163
150
  403037: number;
164
151
  403003: number;
165
152
  403030: number;
153
+ 403106: number;
166
154
  2403001: number;
167
155
  2403002: number;
168
156
  2403003: number;
@@ -214,4 +202,3 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
214
202
  export declare const CLIENT_ERROR_CODE_TO_ERROR_PAYLOAD: Record<number, Partial<ClientEventError>>;
215
203
  export declare const CALL_DIAGNOSTIC_EVENT_FAILED_TO_SEND = "js_sdk_call_diagnostic_event_failed_to_send";
216
204
  export declare const CALL_FEATURE_EVENT_FAILED_TO_SEND = "js_sdk_call_feature_event_failed_to_send";
217
- export {};
@@ -2,29 +2,30 @@ export const CLIENT_NAME: "webex-js-sdk";
2
2
  declare namespace _default {
3
3
  export namespace device {
4
4
  namespace preDiscoveryServices {
5
- let metricsServiceUrl: string;
6
- let metrics: string;
5
+ const metricsServiceUrl: string;
6
+ const metrics: string;
7
7
  }
8
8
  }
9
9
  export namespace metrics_1 {
10
- let appType: string;
11
- let batcherWait: number;
12
- let batcherMaxCalls: number;
13
- let batcherMaxWait: number;
14
- let batcherRetryPlateau: number;
15
- let waitForServiceTimeout: number;
10
+ const appType: string;
11
+ const batcherWait: number;
12
+ const batcherMaxCalls: number;
13
+ const batcherMaxWait: number;
14
+ const batcherRetryPlateau: number;
15
+ const batcherRetryOnNetworkError: boolean;
16
+ const waitForServiceTimeout: number;
16
17
  }
17
18
  export { metrics_1 as metrics };
18
19
  }
19
20
  export default _default;
20
21
  export namespace OS_NAME {
21
- let WINDOWS: string;
22
- let MAC: string;
23
- let IOS: string;
24
- let ANDROID: string;
25
- let CHROME: string;
26
- let LINUX: string;
27
- let OTHERS: string;
22
+ const WINDOWS: string;
23
+ const MAC: string;
24
+ const IOS: string;
25
+ const ANDROID: string;
26
+ const CHROME: string;
27
+ const LINUX: string;
28
+ const OTHERS: string;
28
29
  }
29
30
  export const OSMap: {
30
31
  'Chrome OS': string;
@@ -13,6 +13,7 @@ import BehavioralMetrics from './behavioral-metrics';
13
13
  import OperationalMetrics from './operational-metrics';
14
14
  import BusinessMetrics from './business-metrics';
15
15
  import RtcMetrics from './rtcMetrics';
16
+ import PreLoginMetrics from './prelogin-metrics';
16
17
  export { default, getOSNameInternal } from './metrics';
17
- export { config, CALL_DIAGNOSTIC_CONFIG, NewMetrics, Utils, CallDiagnosticUtils, CallDiagnosticLatencies, CallDiagnosticMetrics, BehavioralMetrics, OperationalMetrics, BusinessMetrics, RtcMetrics, };
18
+ export { config, CALL_DIAGNOSTIC_CONFIG, NewMetrics, Utils, CallDiagnosticUtils, CallDiagnosticLatencies, CallDiagnosticMetrics, BehavioralMetrics, OperationalMetrics, BusinessMetrics, RtcMetrics, PreLoginMetrics, };
18
19
  export type { ClientEvent, ClientEventLeaveReason, SubmitBehavioralEvent, SubmitClientEvent, SubmitInternalEvent, SubmitMQE, SubmitOperationalEvent, SubmitBusinessEvent, PreComputedLatencies, SubmitFeatureEvent, };
@@ -1,4 +1,4 @@
1
- import { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
1
+ import type { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
2
2
  export type Event = Omit<RawEvent, 'event'> & {
3
3
  event: RawClientEvent | RawMediaQualityEvent | RawFeatureEvent;
4
4
  };
@@ -42,7 +42,7 @@ export type SubmitMQEOptions = {
42
42
  globalMeetingId?: string;
43
43
  };
44
44
  export type InternalEvent = {
45
- name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.client.meeting.click.joinbutton' | 'internal.host.meeting.participant.admitted' | 'internal.client.meeting.interstitial-window.showed' | 'internal.client.interstitial-window.click.joinbutton' | 'internal.client.add-media.turn-discovery.start' | 'internal.client.add-media.turn-discovery.end' | 'internal.client.share.initiated' | 'internal.client.share.stopped';
45
+ name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.host.meeting.participant.admitted' | 'internal.client.meeting.interstitial-window.showed' | 'internal.client.interstitial-window.click.joinbutton' | 'internal.client.add-media.turn-discovery.start' | 'internal.client.add-media.turn-discovery.end' | 'internal.client.share.initiated' | 'internal.client.share.stopped';
46
46
  payload?: never;
47
47
  options?: never;
48
48
  };
@@ -73,7 +73,7 @@ export interface BusinessEventPayload {
73
73
  metricName: string;
74
74
  timestamp: number;
75
75
  context: DeviceContext;
76
- browserDetails: EventPayload;
76
+ browserDetails: object;
77
77
  value: EventPayload;
78
78
  }
79
79
  export interface BusinessEvent {
@@ -154,7 +154,7 @@ export type BuildClientEventFetchRequestOptions = (args: {
154
154
  payload?: RecursivePartial<ClientEvent['payload']>;
155
155
  options?: SubmitClientEventOptions;
156
156
  }) => Promise<any>;
157
- export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models';
157
+ export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.click.to.interstitial.for.client.jmt' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models';
158
158
  export interface IdType {
159
159
  meetingId?: string;
160
160
  callId?: string;
@@ -3,6 +3,7 @@ import CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';
3
3
  import BehavioralMetrics from './behavioral-metrics';
4
4
  import OperationalMetrics from './operational-metrics';
5
5
  import BusinessMetrics from './business-metrics';
6
+ import PreLoginMetrics from './prelogin-metrics';
6
7
  import { RecursivePartial, MetricEventProduct, MetricEventAgent, MetricEventVerb, ClientEvent, FeatureEvent, EventPayload, MediaQualityEvent, InternalEvent, SubmitClientEventOptions, Table, DelayedClientEvent, DelayedClientFeatureEvent } from './metrics.types';
7
8
  import CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';
8
9
  /**
@@ -17,6 +18,7 @@ declare class Metrics extends WebexPlugin {
17
18
  behavioralMetrics: BehavioralMetrics;
18
19
  operationalMetrics: OperationalMetrics;
19
20
  businessMetrics: BusinessMetrics;
21
+ preLoginMetrics: PreLoginMetrics;
20
22
  isReady: boolean;
21
23
  /**
22
24
  * Whether or not to delay the submission of client events.
@@ -105,6 +107,16 @@ declare class Metrics extends WebexPlugin {
105
107
  table?: Table;
106
108
  metadata?: EventPayload;
107
109
  }): Promise<void>;
110
+ /**
111
+ * Call Analyzer: Pre-Login Event
112
+ * @param args
113
+ */
114
+ submitPreLoginEvent({ name, preLoginId, payload, metadata, }: {
115
+ name: string;
116
+ preLoginId: string;
117
+ payload: EventPayload;
118
+ metadata?: EventPayload;
119
+ }): Promise<void>;
108
120
  /**
109
121
  * Call Analyzer: Media Quality Event
110
122
  * @param args