import MeetingRequest from '../meeting/request'; import { ControlConfig } from './types'; /** * docs * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867 * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351 */ /** * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting * @export * @private * @class Recording */ export default class ControlsOptionsManager { /** * @instance * @type {MeetingRequest} * @private * @memberof ControlsOptionsManager */ private request; /** * @instance * @type {Array} * @private * @memberof ControlsOptionsManager */ private displayHints; /** * @instance * @type {string} * @private * @memberof ControlsOptionsManager */ private locusUrl; /** * @instance * @type {string} * @private * @memberof ControlsOptionsManager */ private mainLocusUrl; /** * @param {MeetingRequest} request * @param {Object} options * @constructor * @memberof ControlsOptionsManager */ constructor(request: MeetingRequest, options?: { locusUrl: string; displayHints?: Array; }); /** * @param {MeetingRequest} request * @returns {void} * @private * @memberof ControlsOptionsManager */ private initialize; /** * @param {Object} options * @returns {void} * @public * @memberof ControlsOptionsManager */ set(options?: { locusUrl: string; displayHints?: Array; }): void; /** * @param {string} url * @param {boolean} isMainLocus * @returns {void} * @public * @memberof ControlsOptionsManager */ setLocusUrl(url: string, isMainLocus?: boolean): void; /** * @param {Array} hints * @returns {void} * @public * @memberof ControlsOptionsManager */ setDisplayHints(hints: Array): void; /** * @returns {string} * @public * @memberof ControlsOptionsManager */ getLocusUrl(): string; /** * @returns {Array} * @public * @memberof ControlsOptionsManager */ getDisplayHints(): string[]; /** * @param {Object} options * @returns {void} * @private * @memberof ControlsOptionsManager */ private extract; /** * Set controls for this meeting. * * @param {Array} controls - Spread Array of ControlConfigs * @returns {Promise>}- Promise resolving if the request was successful. */ update(...controls: Array): Promise; /** * @param {Setting} setting * @private * @memberof ControlsOptionsManager * @returns {Promise} */ private setControls; /** * @public * @param {boolean} enabled * @memberof ControlsOptionsManager * @returns {Promise} */ setMuteOnEntry(enabled: boolean): Promise; /** * @public * @param {boolean} enabled * @memberof ControlsOptionsManager * @returns {Promise} */ setDisallowUnmute(enabled: boolean): Promise; /** * @public * @param {boolean} mutedEnabled * @param {boolean} disallowUnmuteEnabled * @param {boolean} muteOnEntryEnabled * @param {array} roles which should be muted * @memberof ControlsOptionsManager * @returns {Promise} */ setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean, roles: Array): Promise; }