@azure/communication-react 1.0.0 → 1.0.1-alpha-202112142320.0

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 (104) hide show
  1. package/dist/communication-react.d.ts +214 -0
  2. package/dist/dist-cjs/communication-react/index.js +1225 -178
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  7. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/DevicesButton.js +3 -0
  9. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -4
  11. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/VideoGallery.js +10 -6
  14. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js +8 -2
  17. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +4 -6
  19. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +11 -6
  21. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  22. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +7 -0
  23. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +1 -1
  24. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  25. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
  26. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +7 -5
  27. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts +14 -0
  29. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts.map +1 -0
  30. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js +24 -0
  31. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js.map +1 -0
  32. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts +7 -0
  33. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts.map +1 -0
  34. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js +16 -0
  35. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js.map +1 -0
  36. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts +19 -0
  37. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts.map +1 -0
  38. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js +38 -0
  39. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js.map +1 -0
  40. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts +37 -0
  41. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts.map +1 -0
  42. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js +59 -0
  43. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js.map +1 -0
  44. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts +7 -0
  45. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts.map +1 -0
  46. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js +16 -0
  47. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js.map +1 -0
  48. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts +25 -0
  49. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts.map +1 -0
  50. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js +76 -0
  51. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js.map +1 -0
  52. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts +129 -0
  53. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts.map +1 -0
  54. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js +385 -0
  55. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js.map +1 -0
  56. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts +73 -0
  57. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts.map +1 -0
  58. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js +4 -0
  59. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js.map +1 -0
  60. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts +40 -0
  61. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts.map +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js +100 -0
  63. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js.map +1 -0
  64. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts +30 -0
  65. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts.map +1 -0
  66. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js +79 -0
  67. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js.map +1 -0
  68. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts +10 -0
  69. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts.map +1 -0
  70. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js +5 -0
  71. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js.map +1 -0
  72. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts +50 -0
  73. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts.map +1 -0
  74. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js +50 -0
  75. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js.map +1 -0
  76. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts +21 -0
  77. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts.map +1 -0
  78. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js +41 -0
  79. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js.map +1 -0
  80. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts +8 -0
  81. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts.map +1 -0
  82. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js +4 -0
  83. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js.map +1 -0
  84. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts +35 -0
  85. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts.map +1 -0
  86. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js +51 -0
  87. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js.map +1 -0
  88. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts +42 -0
  89. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts.map +1 -0
  90. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js +72 -0
  91. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js.map +1 -0
  92. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts +6 -0
  93. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts.map +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js +17 -0
  95. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js.map +1 -0
  96. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts +38 -0
  97. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts.map +1 -0
  98. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js +63 -0
  99. package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js.map +1 -0
  100. package/dist/dist-esm/react-composites/src/composites/index.d.ts +2 -0
  101. package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/index.js +4 -0
  103. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  104. package/package.json +24 -9
@@ -229,6 +229,20 @@ export declare type AzureCommunicationChatAdapterArgs = {
229
229
  threadId: string;
230
230
  };
231
231
 
232
+ /**
233
+ * Arguments for {@link createAzureCommunicationMeetingAdapter}
234
+ *
235
+ * @beta
236
+ */
237
+ export declare type AzureCommunicationMeetingAdapterArgs = {
238
+ endpoint: string;
239
+ userId: CommunicationUserIdentifier;
240
+ displayName: string;
241
+ credential: CommunicationTokenCredential;
242
+ chatThreadId: string;
243
+ callLocator: TeamsMeetingLinkLocator | GroupCallLocator;
244
+ };
245
+
232
246
  /**
233
247
  * Properties common to all composites exported from this library.
234
248
  *
@@ -1575,6 +1589,13 @@ export declare type ChatCompositeOptions = {
1575
1589
  * @defaultValue true
1576
1590
  */
1577
1591
  errorBar?: boolean;
1592
+ /**
1593
+ * Show or hide the participant pane. This feature is in beta and not supported on mobile or narrow screen views.
1594
+ * @defaultValue false
1595
+ *
1596
+ * @beta
1597
+ */
1598
+ participantPane?: boolean;
1578
1599
  /**
1579
1600
  * Show or hide the topic at the top of the chat. Hidden if set to `false`
1580
1601
  * @defaultValue true
@@ -2358,6 +2379,14 @@ export declare const createAzureCommunicationChatAdapter: ({ endpoint: endpointU
2358
2379
  */
2359
2380
  export declare const createAzureCommunicationChatAdapterFromClient: (chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient) => Promise<ChatAdapter>;
2360
2381
 
2382
+ /**
2383
+ * Create a meeting adapter backed by Azure Communication services
2384
+ * to plug into the Meeting Composite.
2385
+ *
2386
+ * @beta
2387
+ */
2388
+ export declare const createAzureCommunicationMeetingAdapter: ({ userId, displayName, credential, endpoint, chatThreadId, callLocator }: AzureCommunicationMeetingAdapterArgs) => Promise<MeetingAdapter>;
2389
+
2361
2390
  /**
2362
2391
  * Create the default implementation of {@link CallingHandlers}.
2363
2392
  *
@@ -3311,6 +3340,191 @@ export declare interface MediaDiagnosticsState {
3311
3340
  latest: LatestMediaDiagnostics;
3312
3341
  }
3313
3342
 
3343
+ /**
3344
+ * Meeting Composite Adapter interface.
3345
+ * @beta
3346
+ */
3347
+ export declare interface MeetingAdapter extends MeetingAdapterMeetingManagement, AdapterState<MeetingAdapterState>, Disposable, MeetingAdapterSubscriptions {
3348
+ }
3349
+
3350
+ /**
3351
+ * State from the backend services that drives Meeting Composite.
3352
+ *
3353
+ * @beta
3354
+ */
3355
+ export declare interface MeetingAdapterClientState extends Pick<CallAdapterClientState, 'devices' | 'isTeamsCall'> {
3356
+ /** ID of the meeting participant using this Meeting Adapter. */
3357
+ userId: CommunicationIdentifierKind;
3358
+ /** Display name of the meeting participant using this Meeting Adapter. */
3359
+ displayName: string | undefined;
3360
+ /** State of the current Meeting. */
3361
+ meeting: MeetingState | undefined;
3362
+ }
3363
+
3364
+ /**
3365
+ * Functionality for managing the current meeting.
3366
+ * @beta
3367
+ */
3368
+ export declare interface MeetingAdapterMeetingManagement extends Pick<CallAdapterCallManagement, 'startCamera' | 'stopCamera' | 'mute' | 'unmute' | 'startScreenShare' | 'stopScreenShare' | 'createStreamView' | 'disposeStreamView'>, Pick<CallAdapterDeviceManagement, 'setCamera' | 'setMicrophone' | 'setSpeaker' | 'askDevicePermission' | 'queryCameras' | 'queryMicrophones' | 'querySpeakers'>, Pick<ChatAdapterThreadManagement, 'fetchInitialData' | 'sendMessage' | 'sendReadReceipt' | 'sendTypingIndicator' | 'loadPreviousChatMessages' | 'updateMessage' | 'deleteMessage'> {
3369
+ /**
3370
+ * Join an existing Meeting
3371
+ * @returns The underlying Call object of the meeting.
3372
+ */
3373
+ joinMeeting(microphoneOn?: boolean): Call | undefined;
3374
+ /**
3375
+ * Leave the current Meeting
3376
+ */
3377
+ leaveMeeting(): Promise<void>;
3378
+ /**
3379
+ * Start a new Meeting
3380
+ * @param participants - Array of participant IDs. These represent the participants to initialize the meeting with.
3381
+ * @returns The underlying Call object of the meeting.
3382
+ */
3383
+ startMeeting(participants: string[]): Call | undefined;
3384
+ /**
3385
+ * Remove a participant from a Meeting
3386
+ * @param userId - UserId of the participant to remove.
3387
+ */
3388
+ removeParticipant(userId: string): Promise<void>;
3389
+ }
3390
+
3391
+ /**
3392
+ * Meeting State is a combination of Stateful Chat and Stateful Calling clients with some
3393
+ * state specific to meetings only.
3394
+ * Stateful items like Participants that apply to both calling and chat are intelligently
3395
+ * combined into one to suit the purpose of a Meeting.
3396
+ *
3397
+ * @beta
3398
+ */
3399
+ export declare interface MeetingAdapterState extends MeetingAdapterUiState, MeetingAdapterClientState {
3400
+ }
3401
+
3402
+ /**
3403
+ * Meeting events that can be subscribed to.
3404
+ * @beta
3405
+ */
3406
+ export declare interface MeetingAdapterSubscriptions {
3407
+ on(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
3408
+ on(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
3409
+ on(event: 'meetingEnded', listener: CallEndedListener): void;
3410
+ on(event: 'error', listener: (e: Error) => void): void;
3411
+ off(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
3412
+ off(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
3413
+ off(event: 'meetingEnded', listener: CallEndedListener): void;
3414
+ off(event: 'error', listener: (e: Error) => void): void;
3415
+ on(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
3416
+ on(event: 'callIdChanged', listener: CallIdChangedListener): void;
3417
+ on(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
3418
+ on(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
3419
+ on(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
3420
+ off(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
3421
+ off(event: 'callIdChanged', listener: CallIdChangedListener): void;
3422
+ off(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
3423
+ off(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
3424
+ off(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
3425
+ on(event: 'messageReceived', listener: MessageReceivedListener): void;
3426
+ on(event: 'messageSent', listener: MessageSentListener): void;
3427
+ on(event: 'messageRead', listener: MessageReadListener): void;
3428
+ off(event: 'messageReceived', listener: MessageReceivedListener): void;
3429
+ off(event: 'messageSent', listener: MessageSentListener): void;
3430
+ off(event: 'messageRead', listener: MessageReadListener): void;
3431
+ }
3432
+
3433
+ /**
3434
+ * UI state pertaining to the Meeting Composite.
3435
+ *
3436
+ * @beta
3437
+ */
3438
+ export declare interface MeetingAdapterUiState extends Pick<CallAdapterUiState, 'isLocalPreviewMicrophoneEnabled'> {
3439
+ /** Current page in the meeting composite. */
3440
+ page: MeetingCompositePage;
3441
+ }
3442
+
3443
+ /**
3444
+ * Meeting Composite brings together key components to provide a full meeting experience out of the box.
3445
+ *
3446
+ * @beta
3447
+ */
3448
+ export declare const MeetingComposite: (props: MeetingCompositeProps) => JSX.Element;
3449
+
3450
+ /**
3451
+ * Page state the Meeting composite could be in.
3452
+ *
3453
+ * @beta
3454
+ */
3455
+ export declare type MeetingCompositePage = 'accessDeniedTeamsMeeting' | 'configuration' | 'joinMeetingFailedDueToNoNetwork' | 'leftMeeting' | 'lobby' | 'meeting' | 'removedFromMeeting';
3456
+
3457
+ /**
3458
+ * Props required for the {@link MeetingComposite}
3459
+ *
3460
+ * @beta
3461
+ */
3462
+ export declare interface MeetingCompositeProps extends BaseCompositeProps<CallCompositeIcons & ChatCompositeIcons> {
3463
+ meetingAdapter: MeetingAdapter;
3464
+ /**
3465
+ * Fluent theme for the composite.
3466
+ *
3467
+ * Defaults to a light theme if undefined.
3468
+ */
3469
+ fluentTheme?: PartialTheme | Theme;
3470
+ /**
3471
+ * Optimizes the composite form factor for either desktop or mobile.
3472
+ * @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.
3473
+ * @defaultValue 'desktop'
3474
+ * @beta
3475
+ */
3476
+ formFactor?: 'desktop' | 'mobile';
3477
+ /**
3478
+ * URL that can be used to copy a meeting invite to the Users clipboard.
3479
+ */
3480
+ meetingInvitationURL?: string;
3481
+ }
3482
+
3483
+ /**
3484
+ * Describes the reason the meeting ended.
3485
+ *
3486
+ * @beta
3487
+ */
3488
+ export declare type MeetingEndReason = CallEndReason;
3489
+
3490
+ /**
3491
+ * Events fired off by the Meeting Adapter
3492
+ * @beta
3493
+ */
3494
+ export declare type MeetingEvent = 'participantsJoined' | 'participantsLeft' | 'meetingEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'error';
3495
+
3496
+ /**
3497
+ * Participants of a Meeting.
3498
+ *
3499
+ * @beta
3500
+ */
3501
+ export declare interface MeetingParticipant extends Pick<RemoteParticipantState, 'displayName' | 'state' | 'videoStreams' | 'isMuted' | 'isSpeaking'> {
3502
+ /** ID of the meeting participant. */
3503
+ id: CommunicationUserKind | PhoneNumberKind | MicrosoftTeamsUserKind | UnknownIdentifierKind;
3504
+ /** Describes the reason the meeting ended for this participant. */
3505
+ meetingEndReason?: MeetingEndReason;
3506
+ }
3507
+
3508
+ /**
3509
+ * State of a single Meeting.
3510
+ *
3511
+ * @beta
3512
+ */
3513
+ export declare interface MeetingState extends Pick<CallState, 'callerInfo' | 'state' | 'isMuted' | 'isScreenSharingOn' | 'localVideoStreams' | 'transcription' | 'recording' | 'screenShareRemoteParticipant' | 'startTime' | 'endTime' | 'diagnostics' | 'dominantSpeakers'>, Pick<ChatThreadClientState, 'chatMessages' | 'threadId' | 'properties' | 'readReceipts' | 'typingIndicators' | 'latestReadTime'> {
3514
+ /** Current Meeting ID. */
3515
+ id: string;
3516
+ /** Active participants in the current meeting. */
3517
+ participants: {
3518
+ [key: string]: MeetingParticipant;
3519
+ };
3520
+ /** Participants who have left the current meeting. */
3521
+ participantsEnded: {
3522
+ [keys: string]: MeetingParticipant;
3523
+ };
3524
+ /** Reason the current meeting has ended. */
3525
+ meetingEndReason?: MeetingEndReason;
3526
+ }
3527
+
3314
3528
  /**
3315
3529
  * Discriminated union of all messages.
3316
3530
  *