您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

JitsiConference.d.ts 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. import { JitsiConferenceEvents } from '../../JitsiConferenceEvents';
  2. import JitsiConnection from './JitsiConnection';
  3. import JitsiTrackError from './JitsiTrackError';
  4. import JitsiParticipant from './JitsiParticipant';
  5. import JitsiLocalTrack from './modules/RTC/JitsiLocalTrack';
  6. import JitsiRemoteTrack from './modules/RTC/JitsiLocalTrack';
  7. import JitsiTrack from './modules/RTC/JitsiTrack';
  8. import JitsiVideoSIPGWSession from './modules/videosipgw/JitsiVideoSIPGWSession';
  9. import TraceablePeerConnection from './modules/RTC/TraceablePeerConnection';
  10. import { MediaType } from './service/RTC/MediaType';
  11. export default class JitsiConference {
  12. constructor( options: {
  13. name: string;
  14. config: {
  15. avgRtpStatsN?: number,
  16. p2p?: {
  17. enabled: boolean,
  18. backToP2PDelay?: number
  19. },
  20. channelLastN?: number
  21. },
  22. connection: unknown
  23. } ); // TODO:
  24. join(password: string, replaceParticipant?: boolean): void;
  25. authenticateAndUpgradeRole: ( options: unknown ) => Promise<unknown>; // TODO:
  26. isJoined: () => boolean;
  27. isP2PEnabled: () => boolean;
  28. isP2PTestModeEnabled: () => boolean;
  29. leave: ( reason?: string ) => Promise<unknown>; // TODO:
  30. isEndConferenceSupported: () => boolean;
  31. end: () => void;
  32. getActiveMediaSession: () => JingleSessionPC | undefined;
  33. getMediaSessions: () => JingleSessionPC[];
  34. getName: () => string;
  35. getConnection: () => JitsiConnection;
  36. isAuthEnabled: () => boolean;
  37. isLoggedIn: () => boolean;
  38. getAuthLogin: () => unknown; // TODO:
  39. isExternalAuthEnabled: () => boolean;
  40. getExternalAuthUrl: ( urlForPopup: boolean ) => Promise<unknown>; // TODO: probably returns a Promise<string>
  41. getLocalTracks: ( mediaType: MediaType ) => JitsiLocalTrack[];
  42. getLocalAudioTrack: () => JitsiLocalTrack | null;
  43. getLocalVideoTrack: () => JitsiLocalTrack | null;
  44. getPerformanceStats: () => unknown | null; // TODO:
  45. on: ( eventId: JitsiConferenceEvents, handler: (...args: any[]) => unknown ) => void; // TODO:
  46. once: ( eventId: JitsiConferenceEvents, handler: (...args: any[]) => unknown ) => void; // TODO:
  47. off: ( eventId: JitsiConferenceEvents, handler: (...args: any[]) => unknown ) => void; // TODO:
  48. addEventListener: ( eventId: JitsiConferenceEvents, handler: (...args: any[]) => unknown ) => void; // TODO:
  49. removeEventListener: ( eventId: JitsiConferenceEvents, handler: (...args: any[]) => unknown ) => void; // TODO:
  50. addCommandListener: ( command: string, handler: () => unknown ) => void; // TODO:
  51. removeCommandListener: ( command: string, handler: () => unknown ) => void; // TODO:
  52. // sendTextMessage: (message: string, elementName: string) => void; // obsolete
  53. // sendPrivateTextMessage: (id: string, message: string, elementName: string) => void; // obsolete
  54. sendCommand: ( name: string, values: unknown ) => void; // TODO:
  55. sendCommandOnce: ( name: string, values: unknown ) => void; // TODO:
  56. removeCommand: ( name: string ) => void;
  57. setDisplayName: ( name: string ) => void;
  58. setSubject: ( name: string ) => void;
  59. getTranscriptionStatus: () => 'on' | 'off';
  60. addTrack: ( track: JitsiLocalTrack ) => Promise<JitsiLocalTrack>;
  61. onLocalTrackRemoved: ( track: JitsiLocalTrack ) => void;
  62. removeTrack: ( track: JitsiLocalTrack ) => void;
  63. replaceTrack: ( oldTrack: JitsiLocalTrack, newTrack: JitsiLocalTrack ) => Promise<unknown | JitsiTrackError>;
  64. getRole: () => string;
  65. isHidden: () => boolean | null;
  66. isModerator: () => boolean | null;
  67. lock: ( password: string ) => Promise<unknown | Error>;
  68. unlock: () => Promise<unknown | Error>;
  69. getLastN: () => number;
  70. setLastN: ( lastN: number ) => void;
  71. getParticipants: () => JitsiParticipant[];
  72. getParticipantCount: ( countHidden?: boolean ) => number;
  73. getParticipantById: ( id: string ) => JitsiParticipant;
  74. grantOwner: ( id: string ) => void;
  75. revokeOwner: ( id: string ) => void;
  76. kickParticipant: ( id: string, reason?: string ) => void;
  77. muteParticipant: ( id: string, mediaType?: MediaType ) => void;
  78. onMemberJoined: ( jid: string, nick: string, role: string, isHidden: boolean, statsID?: unknown, status?: string, identity?: unknown, botType?: unknown, fullJid?: string, features?: unknown, isReplaceParticipant?: boolean ) => void;
  79. onMemberLeft: ( jid: string, reason?: string ) => void;
  80. onMemberKicked: ( isSelfPresence: boolean, actorId: string, kickedParticipantId?: string, reason?: string, isReplaceParticipant?: boolean ) => void;
  81. onLocalRoleChanged: ( role: string ) => void;
  82. onUserRoleChanged: ( jid: string, role: string ) => void;
  83. onDisplayNameChanged: ( jid: string, displayName: string ) => void;
  84. onRemoteTrackAdded: ( track: JitsiRemoteTrack ) => void;
  85. onCallAccepted: ( session: unknown, answer: JQuery ) => void; // TODO: answer is a jQuery object, unknown = JingleSessionPC which doesn't exist
  86. onTransportInfo: ( session: unknown, transportInfo: JQuery ) => void; // TODO: transportInfo is a jQuery object, unknown = JingleSessionPC which doesn't exist
  87. onRemoteTrackRemoved: ( removedTrack: JitsiRemoteTrack ) => void;
  88. onIncomingCall: ( jingleSession: unknown, jingleOffer: unknown, now: unknown ) => void; // TODO: unknown = JingleSessionPC which doesn't exist
  89. onCallEnded: ( jingleSession: unknown, reasonCondition: string, reasonText: string ) => void; // TODO: unknown = JingleSessionPC which doesn't exist
  90. onSuspendDetected: ( jingleSession: unknown ) => void; // TODO: unknown = JingleSessionPC which doesn't exist
  91. updateDTMFSupport: () => void;
  92. isDTMFSupported: () => boolean;
  93. myUserId: () => string;
  94. sendTones: ( tones: unknown, duration: unknown, pause: unknown ) => void; // TODO:
  95. startRecording: ( options: unknown ) => Promise<unknown>;
  96. stopRecording: ( sessionID: string ) => Promise<unknown>;
  97. isSIPCallingSupported: () => boolean;
  98. dial: ( number: string ) => Promise<unknown>;
  99. hangup: () => Promise<unknown>;
  100. getPhoneNumber: () => string | null;
  101. getPhonePin: () => string | null;
  102. getMeetingUniqueId: () => string | undefined;
  103. getActivePeerConnection: () => TraceablePeerConnection | null;
  104. getConnectionState: () => string | null;
  105. setStartMutedPolicy: ( policy: { audio: boolean, video: boolean } ) => void;
  106. getStartMutedPolicy: () => { audio: boolean, video: boolean };
  107. getConnectionTimes: () => unknown;
  108. setLocalParticipantProperty: ( name: string, value: unknown ) => void;
  109. removeLocalParticipantProperty: ( name: string ) => void;
  110. getLocalParticipantProperty: ( name: string ) => unknown;
  111. sendFeedback: ( overallFeedback: number, detailedFeedback: unknown ) => Promise<unknown>;
  112. isCallstatsEnabled: () => boolean;
  113. getSsrcByTrack: ( track: JitsiTrack ) => number | undefined;
  114. sendApplicationLog: ( message: string ) => void;
  115. // sendEndpointMessage: (to: string, payload: unknown) => unknown; // TODO: deprecated
  116. // broadcastEndpointMessage: (payload: unknown) => void; // TODO: deprecated
  117. sendEndpointStatsMessage: ( payload: unknown ) => void; // TODO:
  118. sendMessage: ( message: string | unknown, to?: string, sendThroughVideobridge?: boolean ) => void; // TODO: JSDoc is incorrect
  119. isConnectionInterrupted: () => boolean;
  120. getProperty: ( key: string ) => unknown; // TODO:
  121. isP2PActive: () => boolean;
  122. getP2PConnectionState: () => string | null;
  123. setDesktopSharingFrameRate: (maxFps: number) => boolean;
  124. startP2PSession: () => void;
  125. stopP2PSession: () => void;
  126. getSpeakerStats: () => unknown; // TODO:
  127. setReceiverConstraints: ( videoConstraints: unknown ) => void; // TODO:
  128. setReceiverVideoConstraint: ( maxFrameHeight: number ) => void;
  129. setSenderVideoConstraint: ( maxFrameHeight: number ) => Promise<unknown>; // TODO:
  130. isE2EEEnabled: () => boolean;
  131. createVideoSIPGWSession: ( sipAddress: string, displayName: string ) => JitsiVideoSIPGWSession | Error;
  132. toggleE2EE: ( enabled: boolean ) => void;
  133. isLobbySupported: () => boolean;
  134. isMembersOnly: () => boolean;
  135. enableLobby: () => Promise<unknown>;
  136. disableLobby: () => void;
  137. joinLobby: ( displayName: string, email: string ) => Promise<never>;
  138. lobbyDenyAccess: ( id: string ) => void;
  139. lobbyApproveAccess: ( id: string ) => void;
  140. isAVModerationSupported(): boolean;
  141. enableAVModeration: ( mediaType: MediaType ) => void;
  142. disableAVModeration: ( mediaType: MediaType ) => void;
  143. avModerationApprove: ( mediaType: MediaType, id: string ) => void;
  144. }