index.d.ts 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. // Generated by dts-bundle v0.7.3
  2. declare module 'urtc-sdk' {
  3. import Client from '__urtc-sdk/client';
  4. import { setServers } from '__urtc-sdk/server';
  5. import { getSupportProfileNames } from '__urtc-sdk/resolutions';
  6. import { version } from '__urtc-sdk/version';
  7. import { genToken } from '__urtc-sdk/token';
  8. import { Codecs, DeviceDetectionOptions, DeviceDetectionResult } from '__urtc-sdk/types';
  9. export * from '__urtc-sdk/types';
  10. const Logger: import("./logger").Logger;
  11. function getDevices(onSuccess: (data: MediaDeviceInfo[]) => any, onFailure: (data?: any) => any): void;
  12. const generateToken: typeof genToken;
  13. function getSupportedCodec(callback?: (data: Codecs) => any): void;
  14. function isSupportWebRTC(): boolean;
  15. function deviceDetection(options: DeviceDetectionOptions, callback: (result: DeviceDetectionResult) => any): void;
  16. export { Client };
  17. export { Logger };
  18. export { setServers };
  19. export { getDevices };
  20. export { getSupportProfileNames };
  21. export { version };
  22. export { generateToken };
  23. export { getSupportedCodec };
  24. export { isSupportWebRTC };
  25. export { deviceDetection };
  26. const UCloudRTC: {
  27. Client: typeof Client;
  28. Logger: import("./logger").Logger;
  29. setServers: typeof setServers;
  30. getDevices: typeof getDevices;
  31. getSupportProfileNames: typeof getSupportProfileNames;
  32. version: string;
  33. generateToken: typeof genToken;
  34. getSupportedCodec: typeof getSupportedCodec;
  35. isSupportWebRTC: typeof isSupportWebRTC;
  36. deviceDetection: typeof deviceDetection;
  37. };
  38. export default UCloudRTC;
  39. }
  40. declare module '__urtc-sdk/client' {
  41. import { UserRole, User, Stream, AudioStats, VideoStats, NetworkStats, LeaveRoomOptions, ClientOptions, DeviceOptions, DeviceDetectionOptions, DeviceDetectionResult, PublishOptions, AudioVolumeOptions, EventType, RecordOptions, Record, SwitchDeviceOptions, SwitchImageOptions, EffectOptions, EffectVolumeOptions, SnapshotOptions, ReplaceTrackOptions, MixOptions, StopMixOptions, MixResult, AddMixStreamsOptions, RemoveMixStreamsOptions, StartRecordOptions, RecordResult, UpdateMixStreamsOptions, StartRelayOptions, RelayResult, UpdateRelayPushURLOptions, UpdateRelayLayoutOptions, PlayOptions, PreviewStreamOptions, VideoProfileOptions, CustomVideoProfile } from '__urtc-sdk/types';
  42. export default class Client {
  43. constructor(appId: string, token: string, options?: ClientOptions);
  44. setRole(role: UserRole): boolean;
  45. joinRoom(roomId: string, userId: string, onSuccess?: (users: Array<User>, streams: Array<Stream>) => void, onFailure?: (data?: any) => void): void;
  46. leaveRoom(options?: LeaveRoomOptions, onSuccess?: () => void, onFailure?: (data?: any) => void): void;
  47. publish(options?: PublishOptions, onFailure?: (data?: Error) => void): void;
  48. unpublish(streamId?: string, onSuccess?: (stream: Stream) => void, onFailure?: (data?: any) => void): void;
  49. subscribe(streamId: string, onFailure?: (Error?: any) => void): void;
  50. unsubscribe(streamId: string, onSuccess?: (stream: Stream) => void, onFailure?: (data?: any) => void): void;
  51. on(event: EventType, listener: (data?: any) => void): void;
  52. off(event: EventType, listener: (data?: any) => void): void;
  53. muteAudio(streamId?: string): boolean;
  54. unmuteAudio(streamId?: string): boolean;
  55. muteVideo(streamId?: string): boolean;
  56. unmuteVideo(streamId?: string): boolean;
  57. startRecording(options: RecordOptions, onSuccess?: (data: Record) => void, onFailure?: (data?: any) => void): void;
  58. stopRecording(onSuccess?: () => void, onFailure?: (data?: any) => void): void;
  59. getUser(): User | undefined;
  60. getUsers(): User[];
  61. getStream(streamId?: string): Stream | undefined;
  62. getLocalStreams(): Stream[];
  63. getRemoteStreams(): Stream[];
  64. getStreams(): Stream[];
  65. getMediaStream(streamId?: string): MediaStream | undefined;
  66. getLocalMediaStream(streamId?: string): MediaStream | undefined;
  67. getRemoteMediaStream(streamId: string): MediaStream | undefined;
  68. play(options: PlayOptions, callback: (err?: Error) => void): void;
  69. resume(streamId: string, callback: (err?: Error) => void): void;
  70. pause(streamId: string, callback: (err?: Error) => void): void;
  71. stop(streamId: string, callback: (err?: Error) => void): void;
  72. getMicrophones(onSuccess?: (data: MediaDeviceInfo[]) => void, onFailure?: (data?: any) => void): void;
  73. getCameras(onSuccess?: (data: MediaDeviceInfo[]) => void, onFailure?: (data?: any) => void): void;
  74. getLoudspeakers(onSuccess?: (data: MediaDeviceInfo[]) => void, onFailure?: (data?: any) => void): void;
  75. setVideoProfile(options: string | CustomVideoProfile | VideoProfileOptions, onSuccess?: () => void, onFailure?: (data?: any) => void): void;
  76. switchDevice(options: SwitchDeviceOptions, onSuccess?: (data?: any) => void, onFailure?: (data?: any) => void): void;
  77. switchScreen(streamId?: string, onSuccess?: (data?: any) => void, onFailure?: (data?: any) => void): void;
  78. switchImage(options: SwitchImageOptions, onSuccess?: (data?: any) => void, onFailure?: (data?: any) => void): void;
  79. getAudioVolume(streamId?: string): number;
  80. setAudioVolume(options: AudioVolumeOptions, callback?: (data?: any) => void): void;
  81. getAudioStats(streamId?: string, onSuccess?: (data: AudioStats) => void, onFailure?: (data?: any) => void): void;
  82. getVideoStats(streamId?: string, onSuccess?: (data: VideoStats) => void, onFailure?: (data?: any) => void): void;
  83. getNetworkStats(streamId?: string, onSuccess?: (data: NetworkStats) => void, onFailure?: (data?: any) => void): void;
  84. preloadEffect(effectId: number, filePath: string, callback?: (data?: any) => void): void;
  85. unloadEffect(effectId: number): void;
  86. playEffect(options: EffectOptions, callback?: (data?: any) => void): void;
  87. pauseEffect(options: EffectOptions, callback?: (data?: any) => void): void;
  88. resumeEffect(options: EffectOptions, callback?: (data?: any) => void): void;
  89. stopEffect(options: EffectOptions, callback?: (data?: any) => void): void;
  90. setEffectVolume(options: EffectVolumeOptions, callback?: (data?: any) => void): void;
  91. snapshot(options?: SnapshotOptions, onSuccess?: (data: string) => void, onFailure?: (data?: any) => void): void;
  92. startPreviewing(options?: DeviceOptions, onSuccess?: (stream: MediaStream) => void, onFailure?: (data?: any) => void): void;
  93. stopPreviewing(): void;
  94. deviceDetection(options: DeviceDetectionOptions, callback: (result: DeviceDetectionResult) => void): void;
  95. replaceTrack(options: ReplaceTrackOptions, callback?: (err?: any, track?: MediaStreamTrack) => void): void;
  96. startMix(options: MixOptions, callback?: (err?: Error, data?: MixResult) => void): void;
  97. stopMix(options: StopMixOptions, callback?: (err?: Error, data?: MixResult) => void): void;
  98. queryMix(callback?: (err?: Error, data?: MixResult) => void): void;
  99. addMixStreams(options: AddMixStreamsOptions, callback?: (err?: Error, data?: MixResult) => void): void;
  100. removeMixStreams(options: RemoveMixStreamsOptions, callback?: (err?: Error, data?: MixResult) => void): void;
  101. startRecord(options: StartRecordOptions, callback?: (err?: Error, data?: RecordResult) => void): void;
  102. stopRecord(callback?: (err?: Error, data?: RecordResult) => void): void;
  103. updateRecordStreams(options: UpdateMixStreamsOptions, callback?: (err?: Error, data?: RecordResult) => void): void;
  104. startRelay(options: StartRelayOptions, callback?: (err?: Error, data?: RelayResult) => void): void;
  105. stopRelay(callback?: (err?: Error, data?: RelayResult) => void): void;
  106. updateRelayStreams(options: UpdateMixStreamsOptions, callback?: (err?: Error, data?: RelayResult) => void): void;
  107. updateRelayPushURL(options: UpdateRelayPushURLOptions, callback?: (err?: Error, data?: RelayResult) => void): void;
  108. updateRelayLayout(options: UpdateRelayLayoutOptions, callback?: (err?: Error, data?: RelayResult) => void): void;
  109. createStream(options: PreviewStreamOptions, callback: (err?: Error, stream?: Stream) => void): void;
  110. publishStream(previewId: string, callback: (err?: Error, stream?: Stream) => void): void;
  111. unpublishStream(previewId: string, callback: (err?: Error, stream?: Stream) => void): void;
  112. removeStream(previewId: string, callback: (err?: Error) => void): void;
  113. destroyStream(previewId: string, callback: (err?: Error) => void): void;
  114. enableAudioVolumeIndicator(interval?: number): void;
  115. logoff(kind: 'reconnect' | 'switchSignal' | 'refreshSignal', users: string[], callback: (err?: Error) => void): void;
  116. }
  117. }
  118. declare module '__urtc-sdk/server' {
  119. export interface ServerConfig {
  120. api: string;
  121. log: string;
  122. signal: string;
  123. }
  124. export const SERVER_CONFIG: ServerConfig;
  125. export function setServers(conf: ServerConfig): void;
  126. }
  127. declare module '__urtc-sdk/resolutions' {
  128. import { CustomVideoProfile } from '__urtc-sdk/types';
  129. export const SUPPORT_RESOLUTIONS: {
  130. '240*180': {
  131. width: number;
  132. height: number;
  133. minFrameRate: number;
  134. maxFrameRate: number;
  135. minVideoBW: number;
  136. maxVideoBW: number;
  137. };
  138. '320*180': {
  139. width: number;
  140. height: number;
  141. minFrameRate: number;
  142. maxFrameRate: number;
  143. minVideoBW: number;
  144. maxVideoBW: number;
  145. };
  146. '320*240': {
  147. width: number;
  148. height: number;
  149. minFrameRate: number;
  150. maxFrameRate: number;
  151. minVideoBW: number;
  152. maxVideoBW: number;
  153. };
  154. '480*360': {
  155. width: number;
  156. height: number;
  157. minFrameRate: number;
  158. maxFrameRate: number;
  159. minVideoBW: number;
  160. maxVideoBW: number;
  161. };
  162. '640*360': {
  163. width: number;
  164. height: number;
  165. minFrameRate: number;
  166. maxFrameRate: number;
  167. minVideoBW: number;
  168. maxVideoBW: number;
  169. };
  170. '640*480': {
  171. width: number;
  172. height: number;
  173. minFrameRate: number;
  174. maxFrameRate: number;
  175. minVideoBW: number;
  176. maxVideoBW: number;
  177. };
  178. '640*480_1': {
  179. width: number;
  180. height: number;
  181. minFrameRate: number;
  182. maxFrameRate: number;
  183. minVideoBW: number;
  184. maxVideoBW: number;
  185. };
  186. '1280*720': {
  187. width: number;
  188. height: number;
  189. minFrameRate: number;
  190. maxFrameRate: number;
  191. minVideoBW: number;
  192. maxVideoBW: number;
  193. };
  194. '1280*720_1': {
  195. width: number;
  196. height: number;
  197. minFrameRate: number;
  198. maxFrameRate: number;
  199. minVideoBW: number;
  200. maxVideoBW: number;
  201. };
  202. '1280*720_2': {
  203. width: number;
  204. height: number;
  205. minFrameRate: number;
  206. maxFrameRate: number;
  207. minVideoBW: number;
  208. maxVideoBW: number;
  209. };
  210. '1280*720_3': {
  211. width: number;
  212. height: number;
  213. minFrameRate: number;
  214. maxFrameRate: number;
  215. minVideoBW: number;
  216. maxVideoBW: number;
  217. };
  218. '1920*1080': {
  219. width: number;
  220. height: number;
  221. minFrameRate: number;
  222. maxFrameRate: number;
  223. minVideoBW: number;
  224. maxVideoBW: number;
  225. };
  226. '1920*1080_1': {
  227. width: number;
  228. height: number;
  229. minFrameRate: number;
  230. maxFrameRate: number;
  231. minVideoBW: number;
  232. maxVideoBW: number;
  233. };
  234. '1920*1080_2': {
  235. width: number;
  236. height: number;
  237. minFrameRate: number;
  238. maxFrameRate: number;
  239. minVideoBW: number;
  240. maxVideoBW: number;
  241. };
  242. '1920*1080_3': {
  243. width: number;
  244. height: number;
  245. minFrameRate: number;
  246. maxFrameRate: number;
  247. minVideoBW: number;
  248. maxVideoBW: number;
  249. };
  250. };
  251. export const INTERNAL_SUPPORT_RESOLUTIONS: {};
  252. export const DEFAULT_PROFILE = "640*480";
  253. export function getSupportProfileNames(): Array<string>;
  254. export function getInternalSupportProfileNames(): Array<string>;
  255. export interface ResolutionAttributes {
  256. videoWidth: number;
  257. videoHeight: number;
  258. minFrameRate: number;
  259. maxFrameRate: number;
  260. minVideoBW: number;
  261. maxVideoBW: number;
  262. }
  263. export interface Resolution {
  264. profileName: string;
  265. video: MediaTrackConstraints;
  266. attributes: ResolutionAttributes;
  267. }
  268. export function getResolution(profile: string): Resolution;
  269. export function getCustomResolution(profile: CustomVideoProfile): Resolution;
  270. }
  271. declare module '__urtc-sdk/version' {
  272. export const version = "1.6.3";
  273. }
  274. declare module '__urtc-sdk/token' {
  275. export function genToken(appId: string, appKey: string, roomId: string, userId: string): string;
  276. export function decode(token: string): any;
  277. export function encode(data: any): string;
  278. const service: {
  279. genToken: typeof genToken;
  280. decode: typeof decode;
  281. encode: typeof encode;
  282. };
  283. export default service;
  284. }
  285. declare module '__urtc-sdk/types' {
  286. export type VideoCodec = 'vp8' | 'h264';
  287. export type AudioCodec = 'opus';
  288. export type RoomType = 'rtc' | 'live';
  289. export type UserRole = 'pull' | 'push' | 'push-and-pull';
  290. export type DeviceType = 'audio' | 'video';
  291. export type EventType = 'user-added' | 'user-removed' | 'stream-added' | 'stream-removed' | 'stream-published' | 'stream-subscribed' | 'mute-video' | 'unmute-video' | 'mute-audio' | 'unmute-audio' | 'screenshare-stopped' | 'connection-state-change' | 'kick-off' | 'network-quality' | 'stream-reconnected' | 'record-notify' | 'relay-notify' | 'volume-indicator';
  292. export type ConnectionState = 'OPEN' | 'CONNECTING' | 'CLOSING' | 'RECONNECTING' | 'CLOSED';
  293. export type WaterMarkPosition = 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
  294. export type WaterMarkType = 'time' | 'image' | 'text';
  295. export type MainViewType = 'desktop' | 'screen' | 'camera';
  296. export type NetworkQuality = '0' | '1' | '2' | '3' | '4' | '5' | '6';
  297. export interface ClientOptions {
  298. type?: RoomType;
  299. role?: UserRole;
  300. codec?: VideoCodec;
  301. }
  302. export interface Codecs {
  303. audio: Array<AudioCodec>;
  304. video: Array<VideoCodec>;
  305. }
  306. export type FacingMode = 'user' | 'environment' | 'left' | 'right';
  307. export interface PublishOptions {
  308. audio: boolean;
  309. video: boolean;
  310. screenAudio?: boolean;
  311. screen: boolean;
  312. facingMode?: FacingMode;
  313. microphoneId?: string;
  314. cameraId?: string;
  315. extensionId?: string;
  316. mediaStream?: MediaStream;
  317. file?: File;
  318. filePath?: string;
  319. previewId?: string;
  320. }
  321. export interface PreviewStreamOptions extends PublishOptions {
  322. previewId: string;
  323. }
  324. export interface DeviceOptions {
  325. audio: boolean;
  326. video: boolean;
  327. facingMode?: FacingMode;
  328. microphoneId?: string;
  329. cameraId?: string;
  330. }
  331. export interface DeviceDetectionOptions {
  332. audio: boolean;
  333. video: boolean;
  334. microphoneId?: string;
  335. cameraId?: string;
  336. }
  337. export interface DeviceDetectionResult {
  338. audio: boolean;
  339. audioError?: string;
  340. video: boolean;
  341. videoError?: string;
  342. }
  343. export interface User {
  344. uid: string;
  345. }
  346. export interface Stream {
  347. previewId?: string;
  348. sid: string;
  349. uid: string;
  350. type: 'publish' | 'subscribe' | 'preview';
  351. mediaType?: 'camera' | 'screen';
  352. video: boolean;
  353. audio: boolean;
  354. muteAudio: boolean;
  355. muteVideo: boolean;
  356. mediaStream?: MediaStream;
  357. }
  358. export interface LeaveRoomOptions {
  359. keepRecording: boolean;
  360. }
  361. export interface AudioVolumeOptions {
  362. streamId?: string;
  363. element?: HTMLMediaElement;
  364. volume: number;
  365. }
  366. export interface WaterMarkOptions {
  367. position?: WaterMarkPosition;
  368. type?: WaterMarkType;
  369. remarks?: string;
  370. }
  371. export interface MixStreamOptions {
  372. width?: number;
  373. height?: number;
  374. template?: number;
  375. isAverage?: boolean;
  376. }
  377. export interface RelayOptions {
  378. time?: number;
  379. fragment: number;
  380. }
  381. export interface RecordOptions {
  382. bucket: string;
  383. region: string;
  384. uid?: string;
  385. mainViewType?: MainViewType;
  386. mixStream?: MixStreamOptions;
  387. waterMark?: WaterMarkOptions;
  388. relay?: RelayOptions;
  389. }
  390. export interface Record {
  391. FileName: string;
  392. RecordId: string;
  393. }
  394. export interface EffectOptions {
  395. streamId?: string;
  396. effectId: number;
  397. filePath?: string;
  398. loop?: boolean;
  399. playTime?: number;
  400. replace?: boolean;
  401. }
  402. export interface EffectVolumeOptions {
  403. streamId?: string;
  404. effectId: number;
  405. volume: number;
  406. }
  407. export interface SwitchDeviceOptions {
  408. streamId?: string;
  409. type: DeviceType;
  410. deviceId: string;
  411. }
  412. export interface SwitchImageOptions {
  413. streamId?: string;
  414. file?: File;
  415. filePath?: string;
  416. }
  417. export interface SnapshotOptions {
  418. streamId?: string;
  419. download?: string | boolean;
  420. }
  421. export interface AudioStats {
  422. br: number;
  423. lostpre: number;
  424. vol: number;
  425. mime: string;
  426. }
  427. export interface VideoStats {
  428. br: number;
  429. lostpre: number;
  430. frt: number;
  431. w: number;
  432. h: number;
  433. mime: string;
  434. }
  435. export interface NetworkStats {
  436. rtt: number;
  437. }
  438. export interface ReplaceTrackOptions {
  439. streamId?: string;
  440. track: MediaStreamTrack;
  441. retain?: boolean;
  442. }
  443. export type MixType = 'relay' | 'record' | 'relay-and-record' | 'update-config';
  444. export type MixLayoutType = 'flow' | 'main' | 'custom' | 'customMain' | 'customFlow' | 'single';
  445. export type MixAudioCodec = 'aac';
  446. export type MixVideoCodec = 'h264' | 'h265';
  447. export type H264Quality = 'B' | 'CB' | 'M' | 'E' | 'H';
  448. export type MixOutputMode = 'audio-video' | 'audio';
  449. export type MixStreamAddMode = 'automatic' | 'manual';
  450. export interface MixLayoutOptions {
  451. type: MixLayoutType;
  452. standbyTypes?: MixLayoutType[];
  453. custom?: Array<object>;
  454. mainViewUId?: string;
  455. mainViewType?: MainViewType;
  456. }
  457. export interface MixAudioOptions {
  458. codec: MixAudioCodec;
  459. }
  460. export interface MixVideoOptions {
  461. codec: MixVideoCodec;
  462. quality?: H264Quality;
  463. frameRate?: number;
  464. bitRate?: number;
  465. }
  466. export interface BackgroundColorOptions {
  467. r: number;
  468. g: number;
  469. b: number;
  470. }
  471. export interface MixOptions {
  472. type?: MixType;
  473. bucket?: string;
  474. region?: string;
  475. pushURL?: string[];
  476. layout?: MixLayoutOptions;
  477. audio?: MixAudioOptions;
  478. video?: MixVideoOptions;
  479. outputMode?: MixOutputMode;
  480. width?: number;
  481. height?: number;
  482. backgroundColor?: BackgroundColorOptions;
  483. waterMark?: WaterMarkOptions;
  484. streams?: MixStream[];
  485. streamAddMode?: MixStreamAddMode;
  486. timeoutPeriod?: number;
  487. keyUser?: string;
  488. }
  489. export interface StopMixOptions {
  490. type?: MixType;
  491. pushURL?: string[];
  492. }
  493. export interface MixResult {
  494. MixId: string;
  495. FileName?: string;
  496. Type?: MixType;
  497. PushURL?: string[];
  498. }
  499. export interface MixStream {
  500. uid: string;
  501. mediaType: 'camera' | 'screen';
  502. }
  503. export interface AddMixStreamsOptions {
  504. streams: MixStream[];
  505. }
  506. export interface RemoveMixStreamsOptions {
  507. streams: MixStream[];
  508. }
  509. export interface StartRecordOptions {
  510. bucket: string;
  511. region: string;
  512. layout?: MixLayoutOptions;
  513. width?: number;
  514. height?: number;
  515. backgroundColor?: BackgroundColorOptions;
  516. waterMark?: WaterMarkOptions;
  517. streams?: MixStream[];
  518. }
  519. export interface RecordResult {
  520. Id: string;
  521. FileName?: string;
  522. }
  523. export type UpdateMixStreamsType = 'add' | 'remove' | 'replace';
  524. export interface UpdateMixStreamsOptions {
  525. type: UpdateMixStreamsType;
  526. streams: MixStream[];
  527. }
  528. export interface StartRelayOptions {
  529. pushURL?: string[];
  530. layout?: MixLayoutOptions;
  531. audio?: MixAudioOptions;
  532. video?: MixVideoOptions;
  533. outputMode?: MixOutputMode;
  534. width?: number;
  535. height?: number;
  536. backgroundColor?: BackgroundColorOptions;
  537. waterMark?: WaterMarkOptions;
  538. streams?: MixStream[];
  539. streamAddMode?: MixStreamAddMode;
  540. }
  541. export interface RelayResult {
  542. Id: string;
  543. PushURL?: string[];
  544. }
  545. export type UpdateRelayPushURLType = 'add' | 'remove' | 'replace';
  546. export interface UpdateRelayPushURLOptions {
  547. type: UpdateRelayPushURLType;
  548. pushURL: string[];
  549. }
  550. export interface UpdateRelayLayoutOptions {
  551. layout: MixLayoutOptions;
  552. }
  553. export interface UpdateRelayWaterMarkOptions {
  554. waterMark: WaterMarkOptions;
  555. }
  556. export type VideoFitType = 'cover' | 'contain';
  557. export type PlayControlsOption = 'show' | 'hide' | 'auto';
  558. export interface PlayOptions {
  559. streamId: string;
  560. container: HTMLElement | string;
  561. mute?: boolean;
  562. mirror?: boolean;
  563. fit?: VideoFitType;
  564. controls?: PlayControlsOption;
  565. }
  566. export interface CustomVideoProfile {
  567. width: number;
  568. height: number;
  569. framerate: number;
  570. bitrate: number;
  571. }
  572. export interface VideoProfileOptions {
  573. previewId?: string;
  574. profile: string | CustomVideoProfile;
  575. }
  576. export interface MixNotification {
  577. code: string;
  578. message: string;
  579. }
  580. export interface AudioVolume {
  581. sid: string;
  582. uid: string;
  583. mediaType: 'camera' | 'screen';
  584. volume: number;
  585. }
  586. }