@ylink-sdk/meeting 0.1.13 → 0.2.0-beta.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.
@@ -0,0 +1,1915 @@
1
+ /// <reference types="node" />
2
+
3
+ import { Canceler } from '@ylink-sdk/shared';
4
+ import { Emitter } from '@ylink-sdk/shared';
5
+ import { EventType } from '@ylink-sdk/shared';
6
+ import { ICancelToken } from '@ylink-sdk/shared';
7
+ import { Request as Request_2 } from '@ylink-sdk/shared';
8
+ import { RequestError } from '@ylink-sdk/shared';
9
+
10
+ declare type AddVirtualClassParams = VirtualClassParams & {
11
+ vmrId: string;
12
+ type: number;
13
+ };
14
+
15
+ declare interface BarrageRecord {
16
+ content: string;
17
+ time: number;
18
+ durationType: string;
19
+ duration: number;
20
+ }
21
+
22
+ /**
23
+ * 呼叫记录用户
24
+ */
25
+ export declare interface callRecordUser {
26
+ type: InviteType;
27
+ contact: string;
28
+ displayName: string;
29
+ displayNamePinyin: string;
30
+ role: ROLE;
31
+ account: number;
32
+ groupIDs: number[];
33
+ zone: string;
34
+ inviteState: 'fail' | 'inviting' | 'success';
35
+ inviteTime: number;
36
+ inviteTransID: string;
37
+ inviterDisplayName: string;
38
+ resultInfo?: {
39
+ bizCode?: number;
40
+ reasonCode?: number;
41
+ message?: string;
42
+ };
43
+ }
44
+
45
+ export declare class Chat extends Module<ChatData> {
46
+ constructor(ctx: Context);
47
+ _topic(): string;
48
+ _bindOn(): void;
49
+ /**
50
+ * 发送聊天信息
51
+ * @params
52
+ * @returns
53
+ */
54
+ msg(params: {
55
+ msgID: string;
56
+ contentType: string;
57
+ content: string;
58
+ msgType?: number;
59
+ receiver?: {
60
+ userID: number;
61
+ };
62
+ timestamp?: number;
63
+ sender?: {
64
+ userID?: number;
65
+ displayName?: string;
66
+ };
67
+ }): Promise<any>;
68
+ /**
69
+ * 查询聊天历史信息
70
+ * @returns
71
+ */
72
+ historyMsg(params: {
73
+ limit: number;
74
+ }): Promise<any>;
75
+ }
76
+
77
+ export declare type ChatData = object;
78
+
79
+ export declare interface ChatMsgPayload {
80
+ body: Msg;
81
+ state: PollingPayloadState;
82
+ }
83
+
84
+ declare interface Config {
85
+ /**
86
+ * 服务器地址
87
+ * @example https://meetings.ylyun.com/control
88
+ */
89
+ baseURL: string;
90
+ /**
91
+ * 需加载的模块
92
+ * @example
93
+ * ```
94
+ * import { createMeeting, Users, Setting } from '@ylink-sdk/meeting'
95
+ * const meeting = createMeeting({
96
+ * ...
97
+ * modules: [Users, Setting]
98
+ * })
99
+ * ```
100
+ */
101
+ modules: any[];
102
+ /**
103
+ * 消息推送采用子线程模式,避免推送过快,抢占请求资源
104
+ * @example
105
+ * ```
106
+ * // vite框架示例
107
+ * import { createMeeting } from '@ylink-sdk/meeting'
108
+ * import PollingWorker from '@ylink-sdk/meeting/dist/worker/polling.worker.prod.js?worker'
109
+ * const meeting = createMeeting({
110
+ * ...
111
+ * worker: new PollingWorker()
112
+ * })
113
+ * ```
114
+ */
115
+ worker?: Worker;
116
+ /**
117
+ * 创建的meeting实例为单例
118
+ */
119
+ singleton?: boolean;
120
+ }
121
+
122
+ /**
123
+ * 全局上下文
124
+ */
125
+ export declare interface Context {
126
+ /**
127
+ * 全局配置
128
+ */
129
+ config: {
130
+ /**
131
+ * 服务器地址
132
+ * @example https://meetings.ylyun.com/control
133
+ */
134
+ baseURL: string;
135
+ /**
136
+ * 传入的依赖模块
137
+ */
138
+ modules: Array<any>;
139
+ /**
140
+ * 是否采用单例模式
141
+ */
142
+ singleton: boolean;
143
+ /**
144
+ * 请求配置
145
+ */
146
+ request: {
147
+ /**
148
+ * 取消请求
149
+ * @summary SDK内部默认对polling和keepalive接口进行配置
150
+ */
151
+ cancelToken: {
152
+ token: ICancelToken;
153
+ cancel: Canceler;
154
+ };
155
+ /**
156
+ * Api接口前缀
157
+ */
158
+ prefix: {
159
+ /**
160
+ * 会控
161
+ * @default /meeting-ctrl/api/v1/
162
+ */
163
+ ctrl: string;
164
+ /**
165
+ * 会议管理
166
+ * @default /conference-manager/api/v1/
167
+ */
168
+ conference: string;
169
+ /**
170
+ * 用户管理
171
+ * @default /user-manager/api/v1/
172
+ */
173
+ user: string;
174
+ /**
175
+ * 投票
176
+ * @default /vote/api/v1/
177
+ */
178
+ vote: string;
179
+ [prop: string]: string;
180
+ };
181
+ /**
182
+ * 会议归属地
183
+ */
184
+ location: string;
185
+ /**
186
+ * 会议ID
187
+ */
188
+ meetingID: string;
189
+ /**
190
+ * 会控token
191
+ */
192
+ ctrlID: string;
193
+ /**
194
+ * 当前会话
195
+ */
196
+ sessionID: string;
197
+ /**
198
+ * 当前用户ID
199
+ */
200
+ userID: number;
201
+ /**
202
+ * 投票服务唯一标识
203
+ */
204
+ voteTk: string;
205
+ };
206
+ };
207
+ /**
208
+ * 消息推送子线程
209
+ */
210
+ worker?: Worker;
211
+ /**
212
+ * 事件通知
213
+ */
214
+ emitter: Emitter<Events>;
215
+ /**
216
+ * 请求能力
217
+ */
218
+ request: Request_2;
219
+ /**
220
+ * 业务模块
221
+ */
222
+ modules: Record<string, any>;
223
+ /**
224
+ * 会议状态
225
+ */
226
+ state: STATE;
227
+ /**
228
+ * 轮询定时器状态
229
+ */
230
+ status: {
231
+ /**
232
+ * 消息推送-长轮询状态
233
+ */
234
+ polling: {
235
+ /**
236
+ * 是否运行中
237
+ */
238
+ running: boolean;
239
+ /**
240
+ * 定时器
241
+ */
242
+ timer?: NodeJS.Timeout | null;
243
+ };
244
+ /**
245
+ * 保活轮询状态
246
+ */
247
+ keepalive: {
248
+ /**
249
+ * 是否运行中
250
+ */
251
+ running: boolean;
252
+ /**
253
+ * 定时器
254
+ */
255
+ timer?: NodeJS.Timeout | null;
256
+ /**
257
+ * 轮询间隔时间,正常为20S
258
+ */
259
+ interval: number;
260
+ };
261
+ };
262
+ }
263
+
264
+ /**
265
+ * 创建SDK会议实例
266
+ * @param config
267
+ * @returns YlinkSDKMeeting
268
+ */
269
+ export declare function createMeeting(config: Config): YlinkSDKMeeting;
270
+
271
+ declare type EditVirtualClassParams = VirtualClassParams & {
272
+ templateId: string;
273
+ };
274
+
275
+ /**
276
+ * 终端类型
277
+ */
278
+ export declare enum ENDPOINT_TYPE {
279
+ /**
280
+ * webRTC
281
+ */
282
+ WEBAPP = "webApp",
283
+ /**
284
+ * web会控
285
+ */
286
+ WEBCTRL = "webCtrl",
287
+ /**
288
+ * 微信小程序
289
+ */
290
+ WECHATMP = "weChatMP",
291
+ /**
292
+ * 监视者
293
+ */
294
+ SUPERVISION = "supervision",
295
+ /**
296
+ * 虚拟教室终端
297
+ */
298
+ BIGSCREEN = "bigScreen",
299
+ /**
300
+ * 桌面客户端
301
+ */
302
+ DESKTOP = "desktop",
303
+ /**
304
+ * 移动客户端
305
+ */
306
+ MOBILE = "mobile",
307
+ /**
308
+ * 亿联硬件终端
309
+ */
310
+ VCS = "vcs",
311
+ /**
312
+ * SIP终端
313
+ */
314
+ SIP = "sip",
315
+ /**
316
+ * 323终端
317
+ */
318
+ H323 = "h323",
319
+ /**
320
+ * PSTN电话
321
+ */
322
+ PSTN = "pstn"
323
+ }
324
+
325
+ /**
326
+ * 全局事件
327
+ */
328
+ export declare enum EVENT {
329
+ /**
330
+ * 请求异常
331
+ */
332
+ REQUEST_ERROR = "requestError",
333
+ /**
334
+ * 会议状态
335
+ */
336
+ STATE = "state"
337
+ }
338
+
339
+ /**
340
+ * emitter 事件
341
+ */
342
+ declare type Events = {
343
+ [EVENT.STATE]: {
344
+ state: STATE;
345
+ reason?: ResultInfo;
346
+ };
347
+ [EVENT.REQUEST_ERROR]: RequestError;
348
+ me: any;
349
+ setUserVideo: any;
350
+ setUserAudio: any;
351
+ meetingState: any;
352
+ recording: any;
353
+ meetingSetting: any;
354
+ spotlightVideo: any;
355
+ interactiveUsers: any;
356
+ lobbyUsers: any;
357
+ broadcastUsers: any;
358
+ advCtrlUsers: any;
359
+ hostLayout: any;
360
+ attendeeLayout: any;
361
+ audienceLayout: any;
362
+ meetingView: any;
363
+ personalView: any;
364
+ vote: any;
365
+ meetingBarrage: any;
366
+ meetingInfo: any;
367
+ callRecord: any;
368
+ participantCount: any;
369
+ liveStream: any;
370
+ chatMsg: any;
371
+ } & MeEvents;
372
+
373
+ export declare class Info extends Module<InfoData> {
374
+ constructor(ctx: Context);
375
+ _topic(): string;
376
+ _bindOn(): void;
377
+ /**
378
+ * 会议标题修改
379
+ * @params 设置参数
380
+ * @returns 返回的数据
381
+ */
382
+ subject(params: {
383
+ subject: string;
384
+ }): Promise<any>;
385
+ /**
386
+ * 关闭会议准备模式
387
+ * @returns 返回的数据
388
+ */
389
+ practiceSession(): Promise<any>;
390
+ }
391
+
392
+ export declare interface InfoData {
393
+ meetingNum: string;
394
+ meetingID: string;
395
+ allowJoinBeforeHost: boolean;
396
+ askToUnmuteEnabled: boolean;
397
+ consentToRecord: boolean;
398
+ createType: 'vmr' | 'scheduled' | 'meetNow';
399
+ eid: string;
400
+ meetingType: 'meeting' | 'webinar';
401
+ organizer: {
402
+ displayName: string;
403
+ subjectID: string;
404
+ };
405
+ partySubType: number;
406
+ pwd: string;
407
+ seq: number;
408
+ sequence: number;
409
+ startTime: number;
410
+ subject: string;
411
+ speakerShowSelf: boolean;
412
+ asrServiceAvailable: boolean;
413
+ recordUserEnabled: boolean;
414
+ premiseRecordEnabled?: boolean;
415
+ planID?: string;
416
+ vmrID?: string;
417
+ allowLocalRecord?: boolean;
418
+ youtubeLiveStreamDisabled?: boolean;
419
+ allowLiveStream?: boolean;
420
+ isVirtualClassroom?: boolean;
421
+ liveCaptionEnabled?: boolean;
422
+ practiceSession?: boolean;
423
+ audienceHideNonVideoEnabled?: boolean;
424
+ webinarSurveyLink?: string;
425
+ participantCount: {
426
+ hostAttendee: number;
427
+ audience: number;
428
+ };
429
+ }
430
+
431
+ export declare class Invite extends Module<InviteData> {
432
+ static setDisplayNamePinyinProp: (name: string) => string;
433
+ constructor(ctx: Context);
434
+ _topic(): string;
435
+ _bindOn(): void;
436
+ /**
437
+ * 邀请
438
+ */
439
+ invite(params: {
440
+ type: InviteType;
441
+ contacts: string[];
442
+ zone?: string;
443
+ }): Promise<any>;
444
+ }
445
+
446
+ /**
447
+ * Invite 数据
448
+ */
449
+ export declare interface InviteData {
450
+ callRecordUsers: callRecordUser[];
451
+ }
452
+
453
+ /**
454
+ * 邀请用户类型
455
+ */
456
+ export declare type InviteType = 'account' | 'subjectID' | 'sip' | 'h323' | 'pstn' | 'teams' | 'number';
457
+
458
+ /**
459
+ * 入会参数
460
+ */
461
+ export declare interface JoinParams {
462
+ /**
463
+ * 会议号
464
+ */
465
+ meetingNum: string;
466
+ /**
467
+ * 会议明文密码
468
+ */
469
+ pwd?: string;
470
+ /**
471
+ * 用户显示名
472
+ */
473
+ displayName: string;
474
+ /**
475
+ * 终端类型
476
+ */
477
+ endpointType: ENDPOINT_TYPE;
478
+ /**
479
+ * 邀请入会的事务ID(邀请入会必选)
480
+ */
481
+ inviteTransID?: string;
482
+ /**
483
+ * 组织架构IDs
484
+ */
485
+ groupIDs?: Array<string>;
486
+ /**
487
+ * 云账号
488
+ */
489
+ account?: string;
490
+ /**
491
+ * 终端设备类型UA
492
+ */
493
+ userAgent?: string;
494
+ /**
495
+ * 账号的GroupName名称
496
+ */
497
+ groupName?: string;
498
+ /**
499
+ * 入会链接,不带meetingNum则必选
500
+ */
501
+ url?: string;
502
+ /**
503
+ * 手机区号
504
+ */
505
+ mobileCode?: string;
506
+ /**
507
+ * 手机号
508
+ */
509
+ mobile?: string;
510
+ /**
511
+ * 注册邮箱
512
+ */
513
+ regEmail?: string;
514
+ /**
515
+ * 云账号用户邮箱
516
+ */
517
+ accEmail?: string;
518
+ /**
519
+ * 观众注册唯一标识
520
+ */
521
+ tk?: string;
522
+ }
523
+
524
+ export declare interface Layout {
525
+ mode: 'custom' | 'basic';
526
+ layout: LayoutContent;
527
+ seq?: number;
528
+ applyToAttendee?: boolean;
529
+ }
530
+
531
+ export declare interface LayoutContent {
532
+ type: string;
533
+ disallowShowSameVideo?: boolean;
534
+ hideNonVideo?: boolean;
535
+ name?: string;
536
+ pollCount?: number;
537
+ pollSeconds?: number;
538
+ pictures?: Picture[];
539
+ count?: number;
540
+ layout?: string;
541
+ mode?: string;
542
+ }
543
+
544
+ export declare interface Live {
545
+ duration?: number;
546
+ lastStartTime?: number;
547
+ content?: string;
548
+ contentType?: string;
549
+ layout: {
550
+ type?: string;
551
+ };
552
+ liveCaptionEnabled?: boolean;
553
+ platform?: string;
554
+ status?: string;
555
+ watchURL?: string;
556
+ requesting?: boolean;
557
+ resultInfo?: {
558
+ bizCode?: string;
559
+ };
560
+ bizCode?: string;
561
+ watchPassword?: string;
562
+ userID?: string;
563
+ }
564
+
565
+ export declare class LiveStream extends Module<LiveStreamData> {
566
+ constructor(ctx: Context);
567
+ _topic(): string;
568
+ _bindOn(): void;
569
+ /**
570
+ * 设置直播状态
571
+ * @returns 返回的数据
572
+ */
573
+ setStatus(params: {
574
+ platform: string;
575
+ action: string;
576
+ }): Promise<any>;
577
+ /**
578
+ * 设置直播描述信息
579
+ * @returns 返回的数据
580
+ */
581
+ liveStreamDescription(params: {
582
+ platform: string;
583
+ contentType: string;
584
+ content: string;
585
+ }): Promise<any>;
586
+ /**
587
+ * 录制状态修改
588
+ * @params 设置参数
589
+ * @returns 返回的数据
590
+ */
591
+ liveStreamSetting(params: {
592
+ platform: string;
593
+ layout: {
594
+ type: string;
595
+ };
596
+ liveCaptionEnabled: boolean;
597
+ }): Promise<any>;
598
+ }
599
+
600
+ export declare interface LiveStreamData {
601
+ liveStreams: Live[];
602
+ status: Status[];
603
+ resultInfo: {
604
+ bizCode?: string;
605
+ };
606
+ jetlag: number;
607
+ }
608
+
609
+ export declare class Me extends Module<MeData> {
610
+ constructor(ctx: Context);
611
+ _topic(): string;
612
+ _bindOn(): void;
613
+ /**
614
+ * 上报客户端音视频状态
615
+ */
616
+ updateUserState(params: {
617
+ audio: Partial<MediaState>;
618
+ video: Partial<MediaState>;
619
+ share?: Partial<MediaState>;
620
+ }, isForce?: boolean): Promise<Response_2>;
621
+ }
622
+
623
+ export declare interface MeData {
624
+ /**
625
+ * 是否上报了媒体状态
626
+ */
627
+ isUpdatedUserState: boolean;
628
+ /**
629
+ * 是否被设为焦点视频
630
+ */
631
+ isSpotlightVideo: boolean;
632
+ userID: number;
633
+ role: ROLE;
634
+ joinTime: number;
635
+ endpointType: ENDPOINT_TYPE;
636
+ isInLobby: boolean;
637
+ isHandUp: boolean;
638
+ displayName: string;
639
+ subjectID: string;
640
+ caps: number;
641
+ initialMediaState: {
642
+ audio: MediaState;
643
+ video: MediaState;
644
+ };
645
+ mediaContent?: {
646
+ accessMCs: Array<string>;
647
+ addrType: number;
648
+ crypto: string;
649
+ meetingParam: string;
650
+ topMC: string;
651
+ };
652
+ audio?: MeMedia;
653
+ video?: MeMedia;
654
+ share?: MeMedia;
655
+ barrage?: {
656
+ content?: string;
657
+ contentType?: string;
658
+ duration?: number;
659
+ position?: string;
660
+ receiver?: {
661
+ host: boolean;
662
+ attendee: boolean;
663
+ audience: boolean;
664
+ };
665
+ type?: string;
666
+ };
667
+ }
668
+
669
+ /**
670
+ * 媒体
671
+ */
672
+ declare interface MediaState {
673
+ /**
674
+ * 设备的开启状态,true设备可用/false设备不可用
675
+ */
676
+ deviceOn?: boolean;
677
+ /**
678
+ * 暂不使用
679
+ */
680
+ recvOn?: boolean;
681
+ /**
682
+ * 媒体开关状态
683
+ */
684
+ sendOn: boolean;
685
+ }
686
+
687
+ export declare enum MeEvent {
688
+ /**
689
+ * 初始化自身信息,正常为入会时进行调用
690
+ */
691
+ INIT = "meInit",
692
+ /**
693
+ * 涉及自身变更的通知,其他模块触发用
694
+ */
695
+ UPDATE = "meUpdate",
696
+ /**
697
+ * 客户上报自身媒体状态
698
+ */
699
+ UPDATE_USER_STATE = "updateUserState",
700
+ /**
701
+ * 角色变更
702
+ */
703
+ ROLECHANGE = "meRoleChange",
704
+ /**
705
+ * 音频状态变更
706
+ */
707
+ AUDIOCHANGE = "meAudioChange",
708
+ /**
709
+ * 举手状态变更
710
+ */
711
+ HANDUPCHANGE = "meHandupChange",
712
+ /**
713
+ * 远端请求开启音频
714
+ */
715
+ SETAUDIO = "setAudio",
716
+ /**
717
+ * 视频状态变更
718
+ */
719
+ VIDEOCHANGE = "meVideoChange",
720
+ /**
721
+ * 远端请求开启视频
722
+ */
723
+ SETVIDEO = "setVideo",
724
+ /**
725
+ * 辅流状态变更
726
+ */
727
+ SHARECHANGE = "meShareChange",
728
+ /**
729
+ * 显示名变更
730
+ */
731
+ DISPLAYNAMECHANGE = "meDisplayNameChange",
732
+ /**
733
+ * 焦点视频状态变更
734
+ */
735
+ SPOTLIGHTVIDEOCHANGE = "meSpotlightVideoChange",
736
+ /**
737
+ * 进入/离开等候室变更
738
+ */
739
+ LOBBYCHANGE = "meLobbyChange",
740
+ /**
741
+ * 横幅变更
742
+ */
743
+ BARRAGECHANGE = "meBarrageChange",
744
+ /**
745
+ * 离开会议
746
+ */
747
+ LEAVE = "leave"
748
+ }
749
+
750
+ export declare type MeEvents = {
751
+ [MeEvent.INIT]: any;
752
+ [MeEvent.UPDATE]: any;
753
+ [MeEvent.UPDATE_USER_STATE]: any;
754
+ [MeEvent.ROLECHANGE]: ROLE;
755
+ [MeEvent.AUDIOCHANGE]: MeMedia;
756
+ [MeEvent.HANDUPCHANGE]: boolean;
757
+ [MeEvent.SETAUDIO]: any;
758
+ [MeEvent.VIDEOCHANGE]: MeMedia;
759
+ [MeEvent.SETVIDEO]: any;
760
+ [MeEvent.SHARECHANGE]: MeMedia;
761
+ [MeEvent.DISPLAYNAMECHANGE]: string;
762
+ [MeEvent.SPOTLIGHTVIDEOCHANGE]: boolean;
763
+ [MeEvent.LOBBYCHANGE]: boolean;
764
+ [MeEvent.BARRAGECHANGE]: MeData['barrage'];
765
+ [MeEvent.LEAVE]: any;
766
+ };
767
+
768
+ declare type MeMedia = MediaState & {
769
+ opBy?: number;
770
+ };
771
+
772
+ declare abstract class Module<T extends object> {
773
+ moduleName: string;
774
+ ctx: Context;
775
+ data: T;
776
+ emitter: Emitter<Record<EventType, unknown>>;
777
+ constructor(ctx: Context, moduleName: string);
778
+ /**
779
+ * 关联外部响应式数据
780
+ * @param obj
781
+ */
782
+ reactive(obj: Record<any, any>): T & ReactiveReturn;
783
+ /**
784
+ * 数据变更监听
785
+ * @param type
786
+ * @param payload
787
+ * @returns
788
+ */
789
+ on(type: string, payload: any): void;
790
+ /**
791
+ * 取消监听
792
+ * @param type
793
+ * @param handler
794
+ * @returns
795
+ */
796
+ off(type: string, handler?: any): void;
797
+ /**
798
+ * 设置模块订阅的主题
799
+ */
800
+ abstract _topic(): string | string[];
801
+ /**
802
+ * 绑定对应的事件通知,来源polling
803
+ */
804
+ abstract _bindOn(): void;
805
+ }
806
+
807
+ export declare interface Msg {
808
+ msgID: string;
809
+ contentType: string;
810
+ content: string;
811
+ msgType: number;
812
+ receiver: {
813
+ userID: number;
814
+ };
815
+ sender: MsgSender;
816
+ timestamp: number;
817
+ }
818
+
819
+ /**
820
+ * 消息发送者
821
+ */
822
+ declare interface MsgSender {
823
+ displayName: string;
824
+ userID: number;
825
+ }
826
+
827
+ export declare interface PersonalLayout {
828
+ mode: 'custom' | 'basic';
829
+ layouts: LayoutContent[];
830
+ seq: number;
831
+ subscriber?: PersonalLayoutSubscriber;
832
+ templateStatus?: number;
833
+ }
834
+
835
+ export declare interface PersonalLayoutSubscriber {
836
+ userID: number;
837
+ subjectID?: string;
838
+ }
839
+
840
+ export declare interface Picture {
841
+ index: number;
842
+ subscribeToUsers?: {
843
+ subjectID: string;
844
+ userID?: string;
845
+ }[];
846
+ subscribeType: string;
847
+ priorSubscribeType?: string;
848
+ }
849
+
850
+ /**
851
+ * polling 下发事件状态
852
+ */
853
+ export declare type PollingPayloadState = 'full' | 'delete' | 'update';
854
+
855
+ declare type ReactiveReturn = {
856
+ /**
857
+ * 取消响应式关联
858
+ */
859
+ _destory: () => void;
860
+ };
861
+
862
+ /**
863
+ * 录制状态
864
+ */
865
+ export declare enum RECORD_STATUS {
866
+ STARTED = "started",
867
+ PAUSED = "paused",
868
+ STARTING = "starting",
869
+ STOPPED = "stopped"
870
+ }
871
+
872
+ export declare class Recording extends Module<RecordingData> {
873
+ constructor(ctx: Context);
874
+ _topic(): string;
875
+ _bindOn(): void;
876
+ /**
877
+ * 录制记录
878
+ * @returns 返回的数据
879
+ */
880
+ history(): Promise<any>;
881
+ /**
882
+ * 录制状态修改
883
+ * @params 设置参数
884
+ * @returns 返回的数据
885
+ */
886
+ status(params: {
887
+ action: 'start' | 'pause' | 'stop';
888
+ }): Promise<any>;
889
+ /**
890
+ * 录制布局控制
891
+ * @params 设置参数
892
+ * @returns 返回的数据
893
+ */
894
+ layout(params: {
895
+ mode?: 'basic' | 'custom';
896
+ layoutOption: string;
897
+ layout?: LayoutContent;
898
+ }): Promise<any>;
899
+ /**
900
+ * 会控指定与会者录制
901
+ * @params 设置参数
902
+ * @returns 返回的数据
903
+ */
904
+ designatedUsers(params: {
905
+ recordUsers: RecordUsers[];
906
+ }): Promise<any>;
907
+ /**
908
+ * 指定与会者成员添加
909
+ * @params 设置参数
910
+ * @returns 返回的数据
911
+ */
912
+ participantAdd(params: {
913
+ sourceId: string;
914
+ content: string;
915
+ sourceType: number;
916
+ }): Promise<any>;
917
+ /**
918
+ * 指定与会者成员清除
919
+ * @params 设置参数
920
+ * @returns 返回的数据
921
+ */
922
+ participantDelete(params: {
923
+ sourceId: string;
924
+ sourceType: number;
925
+ }): Promise<any>;
926
+ /**
927
+ * 会议模板列表
928
+ * @params 设置参数
929
+ * @returns 返回的数据
930
+ */
931
+ getTemplates(params: {
932
+ vmrId: string;
933
+ }): Promise<any>;
934
+ /**
935
+ * 根据id列表获取用户信息
936
+ * @params 设置参数
937
+ * @returns 返回的数据
938
+ */
939
+ getByIds(params: {
940
+ ids: string[];
941
+ }): Promise<any>;
942
+ /**
943
+ * 设置录制布局
944
+ * @params 设置参数
945
+ * @returns 返回的数据
946
+ */
947
+ recordLayout(params: RecordLayoutMap): Promise<any>;
948
+ }
949
+
950
+ export declare interface RecordingData {
951
+ isPracticeSession?: boolean;
952
+ recording: RecordingMap;
953
+ liveTime?: number;
954
+ status: Status_2;
955
+ resultInfo: {
956
+ bizCode?: string;
957
+ };
958
+ jetlag: number;
959
+ }
960
+
961
+ export declare interface RecordingMap {
962
+ status?: string;
963
+ layout: {
964
+ layout?: {
965
+ type: string;
966
+ name?: string;
967
+ };
968
+ mode?: string;
969
+ };
970
+ layoutOption: string;
971
+ recordUsers?: RecordUsers[];
972
+ requesting?: boolean;
973
+ transcriptEnabled: boolean;
974
+ watermarkEnabled: boolean;
975
+ layoutID?: string;
976
+ lastStartTime?: number;
977
+ duration?: number;
978
+ seq?: number;
979
+ }
980
+
981
+ export declare interface RecordLayoutMap {
982
+ layoutOption?: string;
983
+ mode?: string;
984
+ layout: {
985
+ layout?: {
986
+ type: string;
987
+ };
988
+ mode?: string;
989
+ };
990
+ layoutID?: string;
991
+ }
992
+
993
+ export declare interface RecordUsers {
994
+ subjectID: string;
995
+ userID?: number;
996
+ }
997
+
998
+ export declare function reset(ctx: Context): void;
999
+
1000
+ /**
1001
+ * 请求响应体
1002
+ */
1003
+ declare interface Response_2 {
1004
+ /**
1005
+ * 业务码,成功900200
1006
+ */
1007
+ bizCode: number;
1008
+ /**
1009
+ * 数据
1010
+ */
1011
+ data?: any;
1012
+ /**
1013
+ * 错误信息
1014
+ */
1015
+ error?: {
1016
+ /**
1017
+ * 错误码
1018
+ */
1019
+ errorCode: number;
1020
+ /**
1021
+ * 信息
1022
+ */
1023
+ msg: string;
1024
+ };
1025
+ /**
1026
+ * 标识,-1失败,>-1成功
1027
+ */
1028
+ ret?: number;
1029
+ }
1030
+ export { Response_2 as Response }
1031
+
1032
+ /**
1033
+ * 退会信息
1034
+ */
1035
+ export declare interface ResultInfo {
1036
+ /**
1037
+ * 业务码
1038
+ */
1039
+ bizCode?: number;
1040
+ /**
1041
+ * 原因码
1042
+ */
1043
+ reasonCode?: number;
1044
+ /**
1045
+ * 信息
1046
+ */
1047
+ message?: string;
1048
+ }
1049
+
1050
+ /**
1051
+ * 角色
1052
+ */
1053
+ export declare enum ROLE {
1054
+ /**
1055
+ * 主持人(组织者)
1056
+ */
1057
+ HOST = "host",
1058
+ /**
1059
+ * 联席主持人(会议中被设置为主持人的)
1060
+ */
1061
+ COHOST = "coHost",
1062
+ /**
1063
+ * 与会者
1064
+ */
1065
+ ATTENDEE = "attendee",
1066
+ /**
1067
+ * 观众
1068
+ */
1069
+ AUDIENCE = "audience"
1070
+ }
1071
+
1072
+ export declare class Setting extends Module<SettingData> {
1073
+ constructor(ctx: Context);
1074
+ _topic(): string;
1075
+ _bindOn(): void;
1076
+ /**
1077
+ * 会议设置
1078
+ * @params 设置参数
1079
+ * @returns 返回的数据
1080
+ */
1081
+ setting(params: any): Promise<any>;
1082
+ /**
1083
+ * 全体静音
1084
+ * @params 设置参数
1085
+ * @returns 返回的数据
1086
+ */
1087
+ muteAll(): Promise<any>;
1088
+ /**
1089
+ * 全体接触静音
1090
+ * @params 设置参数
1091
+ * @returns 返回的数据
1092
+ */
1093
+ unmuteAll(): Promise<any>;
1094
+ }
1095
+
1096
+ export declare interface SettingData {
1097
+ meetingNum: string;
1098
+ meetingID: string;
1099
+ lock: boolean;
1100
+ allowRenameSelf: boolean;
1101
+ showAvatar: boolean;
1102
+ chatSetting: {
1103
+ attendeePermission: 'all' | 'public' | 'host' | 'disabled';
1104
+ audiencePermission: 'all' | 'public' | 'host' | 'disabled';
1105
+ };
1106
+ mediaSetting: {
1107
+ audio: {
1108
+ muteOnJoin: boolean;
1109
+ speakingMode: 'free' | 'handUp';
1110
+ allowUnmuteSelf: boolean;
1111
+ };
1112
+ video: {
1113
+ muteOnJoin: boolean;
1114
+ allowUnmuteSelf: boolean;
1115
+ };
1116
+ share: {
1117
+ annotationPermission: 'all' | 'sharerHost';
1118
+ sharePermission: 'allGrab' | 'hostGrab' | 'hostStart' | 'multi';
1119
+ watermark: boolean;
1120
+ };
1121
+ };
1122
+ lobbySetting: {
1123
+ autoAdmitted: number;
1124
+ enabled: boolean;
1125
+ };
1126
+ ivrSetting: {
1127
+ chime: 'off' | 'self' | 'all' | 'selfAndHost';
1128
+ };
1129
+ qaSetting: {
1130
+ allowAnonymousQuestion: boolean;
1131
+ audienceViewPermission: 'onlyTop' | 'onlyAnswered' | 'all';
1132
+ enabled: boolean;
1133
+ };
1134
+ voteSetting: {
1135
+ enabled: boolean;
1136
+ };
1137
+ siteNameSetting: {
1138
+ backgroundColor: number;
1139
+ customStyleOn: boolean;
1140
+ fontColor: number;
1141
+ fontSize: number;
1142
+ horizontalPosition: number;
1143
+ on: boolean;
1144
+ verticalPosition: number;
1145
+ };
1146
+ asrSetting: {
1147
+ allowViewTranscriptHistory: boolean;
1148
+ };
1149
+ seq?: number;
1150
+ }
1151
+
1152
+ export declare class SpotlightVideo extends Module<SpotlightVideoData> {
1153
+ constructor(ctx: Context);
1154
+ _topic(): string;
1155
+ _bindOn(): void;
1156
+ /**
1157
+ * 设置焦点
1158
+ */
1159
+ spotlight(params: {
1160
+ userID: number;
1161
+ action: 'add' | 'remove' | 'replace' | 'removeAll';
1162
+ }): Promise<any>;
1163
+ }
1164
+
1165
+ export declare interface SpotlightVideoData {
1166
+ userIDs: number[];
1167
+ }
1168
+
1169
+ /**
1170
+ * 会议状态类型
1171
+ */
1172
+ export declare enum STATE {
1173
+ /**
1174
+ * 未入会或退会
1175
+ */
1176
+ CLOSE = 0,
1177
+ /**
1178
+ * 已入会
1179
+ */
1180
+ JOINED = 1,
1181
+ /**
1182
+ * 一切就绪
1183
+ */
1184
+ READY = 2
1185
+ }
1186
+
1187
+ declare interface Status {
1188
+ platform: string;
1189
+ status: string;
1190
+ }
1191
+
1192
+ declare type Status_2 = 'starting' | 'started' | 'stopped' | 'paused';
1193
+
1194
+ /**
1195
+ * User 数据
1196
+ */
1197
+ export declare interface User {
1198
+ /**
1199
+ * 会控用户ID
1200
+ */
1201
+ userID: number;
1202
+ /**
1203
+ * 用户账号
1204
+ */
1205
+ account?: string;
1206
+ /**
1207
+ * 终端类型
1208
+ */
1209
+ endpointType?: ENDPOINT_TYPE;
1210
+ /**
1211
+ * 用户名
1212
+ */
1213
+ displayName: string;
1214
+ /**
1215
+ * 用户名拼音
1216
+ */
1217
+ displayNamePinyin: string;
1218
+ /**
1219
+ * 音频能力
1220
+ */
1221
+ audio?: UserMedia;
1222
+ /**
1223
+ * 视频能力 观众无此能力
1224
+ */
1225
+ video?: UserMedia;
1226
+ /**
1227
+ * 辅流能力 观众无此能力
1228
+ */
1229
+ share?: UserMedia;
1230
+ /**
1231
+ * 协作能力 观众无此能力
1232
+ */
1233
+ whiteboard?: UserMedia;
1234
+ /**
1235
+ * 个人能力集
1236
+ */
1237
+ caps?: number;
1238
+ /**
1239
+ * 临时分配的权限
1240
+ */
1241
+ perm?: number;
1242
+ /**
1243
+ * 所属组织
1244
+ */
1245
+ groupIDs?: Array<string>;
1246
+ /**
1247
+ * 是否举手
1248
+ */
1249
+ isHandUp?: boolean;
1250
+ /**
1251
+ * 是否在大厅
1252
+ */
1253
+ isInLobby?: boolean;
1254
+ /**
1255
+ * 入会时间,单位毫秒
1256
+ */
1257
+ joinTime?: number;
1258
+ /**
1259
+ * 角色
1260
+ */
1261
+ role?: ROLE;
1262
+ /**
1263
+ * 用户ID
1264
+ */
1265
+ subjectID?: string;
1266
+ /**
1267
+ * 举手时间
1268
+ */
1269
+ handUpTime?: number;
1270
+ /**
1271
+ * 变更原因
1272
+ */
1273
+ resultInfo?: Record<string, any>;
1274
+ /**
1275
+ * 本地录制
1276
+ */
1277
+ localRecord?: {
1278
+ status: RECORD_STATUS;
1279
+ };
1280
+ }
1281
+
1282
+ /**
1283
+ * User 媒体状态
1284
+ */
1285
+ export declare interface UserMedia {
1286
+ /**
1287
+ * 设备的开启状态,true设备可用/false设备不可用
1288
+ */
1289
+ deviceOn?: boolean;
1290
+ /**
1291
+ * 暂不使用
1292
+ */
1293
+ recvOn?: boolean;
1294
+ /**
1295
+ * 媒体开关状态,比如:false禁言/true解禁言
1296
+ */
1297
+ sendOn?: boolean;
1298
+ /**
1299
+ * 操作者 1(other) 表示被别人操作;0(self) 或没有该字段 表示自己操作
1300
+ */
1301
+ opBy?: number;
1302
+ }
1303
+
1304
+ export declare class Users extends Module<UsersData> {
1305
+ static setDisplayNamePinyinProp: (name: string) => string;
1306
+ constructor(ctx: Context);
1307
+ _topic(): string[] | "interactive";
1308
+ _bindOn(): void;
1309
+ /**
1310
+ * 更新 - 补充用户信息:
1311
+ * 名称拼音
1312
+ * @param updateUser
1313
+ * @param user
1314
+ */
1315
+ updateUserProps(updateUser: User, user: User): void;
1316
+ /**
1317
+ * 设置音频
1318
+ * @param userID
1319
+ * @param params
1320
+ * @returns
1321
+ */
1322
+ setAudio(userID: number, params: {
1323
+ sendOn: boolean;
1324
+ cred?: string;
1325
+ }): Promise<any>;
1326
+ /**
1327
+ * 设置视频
1328
+ * @param userID
1329
+ * @param params
1330
+ * @returns
1331
+ */
1332
+ setVideo(userID: number, params: {
1333
+ sendOn: boolean;
1334
+ cred?: string;
1335
+ }): Promise<any>;
1336
+ /**
1337
+ * 设置辅流
1338
+ * @param userID
1339
+ * @param params
1340
+ * @returns
1341
+ */
1342
+ setShare(userID: number, params: {
1343
+ sendOn: boolean;
1344
+ }): Promise<any>;
1345
+ /**
1346
+ * 设置互动协作白板
1347
+ * @param userID
1348
+ * @param params
1349
+ * @returns
1350
+ */
1351
+ setWhiteboard(userID: number, params: {
1352
+ sendOn: boolean;
1353
+ }): Promise<any>;
1354
+ /**
1355
+ * 举手
1356
+ * @param userID
1357
+ * @param params
1358
+ * @returns
1359
+ */
1360
+ handUp(userID: number, params: {
1361
+ handUp: boolean;
1362
+ }): Promise<any>;
1363
+ /**
1364
+ * 修改用户角色
1365
+ * @param userID
1366
+ * @param params
1367
+ * @returns
1368
+ */
1369
+ setRole(userID: number, params: {
1370
+ role: ROLE;
1371
+ }): Promise<any>;
1372
+ /**
1373
+ * 改名
1374
+ * @param userID
1375
+ * @param params
1376
+ * @returns
1377
+ */
1378
+ rename(userID: number, params: {
1379
+ displayName: string;
1380
+ }): Promise<any>;
1381
+ /**
1382
+ * 移除用户
1383
+ * @param userID
1384
+ * @returns
1385
+ */
1386
+ remove(userID: number): Promise<any>;
1387
+ /**
1388
+ * 举手处理
1389
+ * @param userID
1390
+ * @param params
1391
+ * @returns
1392
+ */
1393
+ replyHandUp(userID: number, params: {
1394
+ permit: boolean;
1395
+ }): Promise<any>;
1396
+ /**
1397
+ * 摄像头控制
1398
+ */
1399
+ fecc(userID: number, params: {
1400
+ action: string;
1401
+ actionPlayTimes: number;
1402
+ }): Promise<any>;
1403
+ /**
1404
+ * 会议大厅状态切换 允许入会或者设为等待
1405
+ * @param userID
1406
+ * @param params
1407
+ * @returns
1408
+ */
1409
+ lobbyState(userID: number, params: {
1410
+ isInLobby: boolean;
1411
+ }): Promise<any>;
1412
+ /**
1413
+ * 设置用户本地录播权限
1414
+ * @param userID
1415
+ * @param params
1416
+ * @returns
1417
+ */
1418
+ allowLocalRecord(userID: number, params: {
1419
+ allow: boolean;
1420
+ }): Promise<any>;
1421
+ /**
1422
+ * 设置互动协作白板
1423
+ * @param userID
1424
+ * @param params
1425
+ * @returns
1426
+ */
1427
+ whiteboard(userID: number, params: {
1428
+ sendOn: boolean;
1429
+ }): Promise<any>;
1430
+ /**
1431
+ * 通话统计
1432
+ * @param userID
1433
+ * @returns
1434
+ */
1435
+ callStats(userID: number): Promise<any>;
1436
+ /**
1437
+ * 举手全部拒绝
1438
+ * @returns
1439
+ */
1440
+ replyAllHandUp(): Promise<any>;
1441
+ /**
1442
+ * 大厅全部准入
1443
+ * @returns
1444
+ */
1445
+ admitAll(): Promise<any>;
1446
+ /**
1447
+ * 大厅全部移除
1448
+ * @returns
1449
+ */
1450
+ refuseAll(): Promise<any>;
1451
+ }
1452
+
1453
+ /**
1454
+ * Users 数据
1455
+ */
1456
+ export declare interface UsersData {
1457
+ /**
1458
+ * 互动方(参会者)成员列表
1459
+ */
1460
+ interactiveUsers: User[];
1461
+ /**
1462
+ * 等候室成员列表
1463
+ */
1464
+ lobbyUsers: User[];
1465
+ /**
1466
+ * 广播方(观众)成员列表
1467
+ */
1468
+ broadcastUsers: User[];
1469
+ /**
1470
+ * 虚拟教室终端 - 仅前端会控使用
1471
+ */
1472
+ advCtrlUsers: User[];
1473
+ }
1474
+
1475
+ export declare class View extends Module<ViewData> {
1476
+ constructor(ctx: Context);
1477
+ _topic(): string[];
1478
+ _bindOn(): void;
1479
+ updateLayout(payload: ViewPayload, type: string): void;
1480
+ /**
1481
+ * 更新个人自定义布局
1482
+ * @param payload
1483
+ */
1484
+ private updatePersonalLayouts;
1485
+ /**
1486
+ * 主持人布局设置
1487
+ * @params 设置参数
1488
+ * @returns 返回的数据
1489
+ */
1490
+ hostLayout(params: Layout): Promise<any>;
1491
+ /**
1492
+ * 与会者布局设置
1493
+ * @params 设置参数
1494
+ * @returns 返回的数据
1495
+ */
1496
+ attendeeLayout(params: Layout): Promise<any>;
1497
+ /**
1498
+ * 观众布局设置
1499
+ * @params 设置参数
1500
+ * @returns 返回的数据
1501
+ */
1502
+ audienceLayout(params: Layout): Promise<any>;
1503
+ /**
1504
+ * 设置个人布局
1505
+ * @param params
1506
+ * @returns
1507
+ */
1508
+ personalLayout(params: Layout & {
1509
+ subscriber: PersonalLayoutSubscriber;
1510
+ }): Promise<any>;
1511
+ /**
1512
+ * 取消个人布局
1513
+ * @param params
1514
+ * @returns
1515
+ */
1516
+ personalLayoutDelete(params: {
1517
+ subscriber: PersonalLayoutSubscriber;
1518
+ }): Promise<any>;
1519
+ /**
1520
+ * 设置虚拟教室布局
1521
+ * @params 设置参数
1522
+ * @returns 返回的数据
1523
+ */
1524
+ virtualClassLayout(params: {
1525
+ blackList: string[];
1526
+ count: number;
1527
+ layout: LayoutContent;
1528
+ }): Promise<any>;
1529
+ /**
1530
+ * 关闭虚拟教室布局
1531
+ * @params 设置参数
1532
+ * @returns 返回的数据
1533
+ */
1534
+ closeVirtualClass(): Promise<any>;
1535
+ /**
1536
+ * 获取虚拟课堂布局
1537
+ * @params 设置参数
1538
+ * @returns 返回的数据
1539
+ */
1540
+ getVirtualClassTemplate(params: {
1541
+ vmrId: string;
1542
+ type: number;
1543
+ }): Promise<any>;
1544
+ /**
1545
+ * 添加虚拟课堂布局
1546
+ * @params 设置参数
1547
+ * @returns 返回的数据
1548
+ */
1549
+ addVirtualClassTemplate(params: AddVirtualClassParams): Promise<any>;
1550
+ /**
1551
+ * 编辑虚拟课堂布局
1552
+ * @params 设置参数
1553
+ * @returns 返回的数据
1554
+ */
1555
+ editVirtualClassTemplate(params: EditVirtualClassParams): Promise<any>;
1556
+ /**
1557
+ * 会议模板列表
1558
+ * @params 设置参数
1559
+ * @returns 返回的数据
1560
+ */
1561
+ getTemplates(params: {
1562
+ vmrId: string;
1563
+ }): Promise<any>;
1564
+ /**
1565
+ * 会议模板编辑
1566
+ * @params 设置参数
1567
+ * @returns 返回的数据
1568
+ */
1569
+ editTemplate(params: {
1570
+ vmrId: string;
1571
+ name: string;
1572
+ id: string;
1573
+ content: string;
1574
+ }): Promise<any>;
1575
+ /**
1576
+ * 会议模板添加
1577
+ * @params 设置参数
1578
+ * @returns 返回的数据
1579
+ */
1580
+ addTemplate(params: {
1581
+ vmrId: string;
1582
+ name: string;
1583
+ content: string;
1584
+ }): Promise<any>;
1585
+ /**
1586
+ * 会议模板删除
1587
+ * @params 设置参数
1588
+ * @returns 返回的数据
1589
+ */
1590
+ deleteTemplate(params: {
1591
+ vmrId: string;
1592
+ id: string;
1593
+ }): Promise<any>;
1594
+ /**
1595
+ * 会议模板获取默认模板参数
1596
+ * @params 设置参数
1597
+ * @returns 返回的数据
1598
+ */
1599
+ getDefaultTemplates(params: {
1600
+ vmrId: string;
1601
+ partyId: string;
1602
+ }): Promise<any>;
1603
+ /**
1604
+ * 会议模板设置默认模板
1605
+ * @params 设置参数
1606
+ * @returns 返回的数据
1607
+ */
1608
+ changeDefaultTemplate(params: {
1609
+ vmrId: string;
1610
+ id: string;
1611
+ isDefault: boolean;
1612
+ perspective: number;
1613
+ }): Promise<any>;
1614
+ /**
1615
+ * 会议模板个人默认布局绑定
1616
+ * @params 设置参数
1617
+ * @returns 返回的数据
1618
+ */
1619
+ perspectiveBind(params: {
1620
+ vmrId: string;
1621
+ bindList: {
1622
+ templateId: string;
1623
+ subjectIds: string[];
1624
+ }[];
1625
+ }): Promise<any>;
1626
+ }
1627
+
1628
+ export declare interface ViewData {
1629
+ hostLayout: Layout;
1630
+ attendeeLayout: Layout;
1631
+ audienceLayout: Layout;
1632
+ personalLayouts: Record<number | string, PersonalLayout>;
1633
+ }
1634
+
1635
+ declare interface ViewPayload {
1636
+ body: any;
1637
+ state: PollingPayloadState;
1638
+ event: string;
1639
+ }
1640
+
1641
+ declare interface VirtualClassParams {
1642
+ enabled: boolean;
1643
+ targetIds: string[];
1644
+ blacklistIds: string[];
1645
+ content: string;
1646
+ }
1647
+
1648
+ export declare class Vote extends Module<VoteData> {
1649
+ constructor(ctx: Context);
1650
+ _topic(): string | string[];
1651
+ _bindOn(): void;
1652
+ /**
1653
+ * 查询投票列表
1654
+ * @params 设置参数
1655
+ * @returns 返回的数据
1656
+ */
1657
+ getVotes(params: {
1658
+ planID: string;
1659
+ vmrID: string;
1660
+ tk?: string;
1661
+ }): Promise<any>;
1662
+ /**
1663
+ * 查询投票详情
1664
+ * @param params
1665
+ * @returns
1666
+ */
1667
+ getVote(params: VotePathParams & {
1668
+ role: string;
1669
+ state: string;
1670
+ }): Promise<any>;
1671
+ /**
1672
+ * 查询用户投票选项
1673
+ * @param params
1674
+ * @returns
1675
+ */
1676
+ getMeVote(params: VotePathParams): Promise<any>;
1677
+ /**
1678
+ * 投票状态操作
1679
+ * @param params
1680
+ * @returns
1681
+ */
1682
+ voteStatus(pathParams: VotePathParams, params: {
1683
+ action: string;
1684
+ displayName?: string;
1685
+ role?: string;
1686
+ isAnonymous?: boolean;
1687
+ allowAttendeeVote?: boolean;
1688
+ }): Promise<any>;
1689
+ /**
1690
+ * 提交投票
1691
+ * @param pathParams
1692
+ * @param params
1693
+ * @returns
1694
+ */
1695
+ voteSubmit(pathParams: VotePathParams, params: {
1696
+ submitData: {
1697
+ selectedQuestions: {
1698
+ selectedOptionIDs: string[];
1699
+ questionID: string;
1700
+ }[];
1701
+ };
1702
+ userData: {
1703
+ displayName: string;
1704
+ account: string;
1705
+ role: string;
1706
+ subjectID: string;
1707
+ };
1708
+ }): Promise<any>;
1709
+ /**
1710
+ * 投票创建
1711
+ * @param params
1712
+ * @returns
1713
+ */
1714
+ voteAdd(params: VoteParams): Promise<any>;
1715
+ /**
1716
+ * 投票编辑
1717
+ * @param params
1718
+ * @returns
1719
+ */
1720
+ voteEdit(params: VoteParams): Promise<any>;
1721
+ /**
1722
+ * 投票删除
1723
+ * @param params
1724
+ * @returns
1725
+ */
1726
+ voteDelete(params: {
1727
+ ids: string[];
1728
+ }): Promise<any>;
1729
+ }
1730
+
1731
+ declare interface VoteBody {
1732
+ action: string;
1733
+ status: number;
1734
+ voteID: string;
1735
+ }
1736
+
1737
+ export declare interface VoteData {
1738
+ vote: Record<string, VoteBody>;
1739
+ }
1740
+
1741
+ export declare interface VoteInfo {
1742
+ allowAttendeeVote: boolean;
1743
+ createTime: number;
1744
+ endTime: number;
1745
+ isAnonymous: boolean;
1746
+ isSharing: boolean;
1747
+ name: string;
1748
+ startTime: number;
1749
+ status: number;
1750
+ totalVotedCount: number;
1751
+ type: number;
1752
+ version: number;
1753
+ voteID: string;
1754
+ questions: VoteQuestionInfo[];
1755
+ }
1756
+
1757
+ export declare interface VoteParams {
1758
+ name: string;
1759
+ sourceId: string;
1760
+ sourceType: number;
1761
+ questions: VoteQuestionParams[];
1762
+ }
1763
+
1764
+ declare interface VotePathParams {
1765
+ voteID: string;
1766
+ tk?: string;
1767
+ }
1768
+
1769
+ export declare interface VoteQuestionInfo {
1770
+ chooseAtLeast: number;
1771
+ chooseAtMost: number;
1772
+ index: number;
1773
+ questionID: string;
1774
+ required: boolean;
1775
+ text: string;
1776
+ type: number;
1777
+ options: VoteQuestionOptionInfo[];
1778
+ totalVotedCount: number;
1779
+ }
1780
+
1781
+ export declare type VoteQuestionOptionInfo = {
1782
+ index: number;
1783
+ optionID: string;
1784
+ text: string;
1785
+ votedCount: number;
1786
+ };
1787
+
1788
+ export declare interface VoteQuestionOptionParams {
1789
+ sort: number;
1790
+ type: number;
1791
+ description: string;
1792
+ id: string;
1793
+ }
1794
+
1795
+ export declare interface VoteQuestionParams {
1796
+ id: string;
1797
+ sort: number;
1798
+ showType: number;
1799
+ required: boolean;
1800
+ chooseAtLeast: number;
1801
+ chooseAtMost: number;
1802
+ description: string;
1803
+ type: number;
1804
+ options: VoteQuestionOptionParams[];
1805
+ }
1806
+
1807
+ export declare class Words extends Module<WordsData> {
1808
+ constructor(ctx: Context);
1809
+ _topic(): string;
1810
+ _bindOn(): void;
1811
+ /**
1812
+ * 发送字幕
1813
+ * @params 设置参数
1814
+ * @returns 返回的数据
1815
+ */
1816
+ barrage(params: any): Promise<any>;
1817
+ /**
1818
+ * 删除字幕
1819
+ * @params 设置参数
1820
+ * @returns 返回的数据
1821
+ */
1822
+ deleteBarrage(): Promise<any>;
1823
+ }
1824
+
1825
+ export declare interface WordsData {
1826
+ wordsDisplayStatus: boolean;
1827
+ barrageRecord: BarrageRecord[];
1828
+ backgroundColor?: string;
1829
+ content?: string;
1830
+ contentType?: string;
1831
+ duration?: number;
1832
+ fontColor?: string;
1833
+ fontSize?: number;
1834
+ position?: string;
1835
+ receiver?: {
1836
+ host: boolean;
1837
+ attendee: boolean;
1838
+ audience: boolean;
1839
+ };
1840
+ type?: string;
1841
+ timer?: NodeJS.Timeout | null;
1842
+ }
1843
+
1844
+ /**
1845
+ * meeting实例
1846
+ */
1847
+ export declare interface YlinkSDKMeeting {
1848
+ /**
1849
+ * 全局配置
1850
+ */
1851
+ config: Pick<Context, 'config'>['config'];
1852
+ /**
1853
+ * 请求
1854
+ */
1855
+ request: Request_2;
1856
+ /**
1857
+ * 会议状态
1858
+ */
1859
+ state: STATE;
1860
+ /**
1861
+ * 全局事件监听
1862
+ */
1863
+ on: Emitter<Events>['on'];
1864
+ /**
1865
+ * 取消全局事件监听
1866
+ */
1867
+ off: Emitter<Events>['off'];
1868
+ /**
1869
+ * 加入会议
1870
+ */
1871
+ join: (params: JoinParams) => Promise<Response_2>;
1872
+ /**
1873
+ * 离开会议
1874
+ */
1875
+ leave: (params?: ResultInfo) => Promise<Response_2>;
1876
+ /**
1877
+ * 结束会议
1878
+ */
1879
+ end: () => Promise<Response_2>;
1880
+ /**
1881
+ * 模块 - 自身相关
1882
+ */
1883
+ me?: Me;
1884
+ /**
1885
+ * 模块 - 会议信息
1886
+ */
1887
+ info?: Info;
1888
+ /**
1889
+ * 模块 - 参会成员
1890
+ */
1891
+ users?: Users;
1892
+ /**
1893
+ * 模块 - 焦点视频
1894
+ */
1895
+ spotlightVideo?: SpotlightVideo;
1896
+ /**
1897
+ * 模块 - 邀请
1898
+ */
1899
+ invite?: Invite;
1900
+ /**
1901
+ * 模块 - 投票
1902
+ */
1903
+ vote?: Vote;
1904
+ /**
1905
+ * 模块 - 文字消息
1906
+ */
1907
+ words?: Words;
1908
+ /**
1909
+ * 聊天
1910
+ */
1911
+ chat?: Chat;
1912
+ [props: string]: any;
1913
+ }
1914
+
1915
+ export { }