import { IApplication } from './api.interfaces'; /** * Type definition of {@link Application.meeting | app.meeting.state} * @public */ export interface IWebexAppsMeetingState { /** * ID of the Webex meeting. If {@link Application.isPrivateDataAvailable | app.isPrivateDataAvailable} is `true` the value of this property is the ID of the associated Webex meeting resource, and can be used with the Webex REST APIs. If `isPrivateDataAvailable` is `false` this property is set to a unique ("derived") value that is guaranteed to be consistent for all app users, but cannot be used with the Webex REST APIs. * @readonly */ id: string | null; /** * Derived meeting id. Meeting instance ID. Contains a globally unique ID for the meeting instance in which the app is running. The difference between `webex.application.meeting.id` and `webex.application.meeting.instanceId` is that `meeting.id` will contain the same value each time the meeting is started (the ID of the scheduled meeting), but `meeting.instanceId` will be unique each time the scheduled meeting is started. Its value is guaranteed to be consistent for all application users regardless of whether or not the app has access to the user's personally identifying information (PII). * @readonly */ instanceId: string | null; /** * Backend service URL. * @readonly */ url: string | null; /** * Title of the given meeting; blank if {@link Application.isPrivateDataAvailable | app.isPrivateDataAvailable} is false. * @readonly */ title: string | null; /** * Start time for a scheduled meeting in UTC ("2021-01-17T13:00:00.00Z", for example). Blank for Personal Room meetings. * @readonly */ startTime: string | null; /** * * End time for a scheduled meeting in UTC ("2021-01-17T13:00:10.00Z", for example). Blank for Personal Room meetings. * @readonly */ endTime: string | null; /** * Represents the current app user's role(s). Can be one or more of the following: "PARTICIPANT", "GUEST", "HOST", "COHOST", "PANELIST", "INTERPRETER", and "PRESENTER". * @readonly */ userRoles: string[] | null; /** * Information about the meeting type. Can be one of the following: "MEETING", or "EVENT". * @readonly */ meetingType: string | null; /** * Represents the display name changed by the participant / host during a meeting * @readonly */ displayName?: string | null; /** * Indicates if the URL specified in the call to {@link IWebexAppsMeetingState.setPresentationUrl | app.context.meeting.setPresentationUrl()} is being presented in stage view. This requires the user to click **Share this app content** button. A value of `TRUE` indicates the presentation is ongoing; `FALSE` indicate the presentation has not started. URL sharing is not supported for spaces. * @remarks Available since 1.7.0 */ isPresenting: boolean | null; /** * Represents the permission token * @readonly */ permissionToken: string | null; /** * Specifies URL to be presented in a meeting, for example, a PDF or PowerPoint document. The URL will be rendered in the stage view after consent from the host. The first time the call is made, the **Share this app content** button is displayed. Additional calls to the `setPresentation` URL will not require consent after the initial consent request from the host. * * `setPresentationUrl` can be called multiple times but subsequent calls will return `INVALID_ARGUMENT` if the app developer changes either the `optimizationMode` or the `includeAudio` parameter while the share is ongoing. To change `optimizationMode` or `includeAudio` you must manually stop the share, update the parameters and restart the share. * * Rejects with Index to the static `Application.ErrorCodes` array. * * 0 = `SUCCESS`, 1 = `GENERIC_ERROR`, 2 = `INVALID_ARGUMENT`, 7 = `NOT_INITIALIZED` * * @param {string} url - URL of the presentation that will be rendered in stage view on the presenter side. * @param {string} title - Title of the presentation being rendered. * @param {ShareOptimizationMode} - Share optimization mode. Indicates if the content being shared should be optimized for video/motion, text/images or auto detect. The parameter type can be `webex.Application.ShareOptimizationMode.AUTO_DETECT`, `webex.Application.shareOptimizationMode.TEXT`, or `webex.Application.shareOptimizationMode.VIDEO`. * @param {boolean} includeAudio - Indicates if audio should be shared as well * * @remarks Available since 1.7.0 * @example * * The following provides value for the url parameter passed as an argument to `setPresentationUrl()`. * * ```javascript * const app = new Application(); * await app.onReady(); * const meeting = await app.context.getMeeting(); * await meeting.setPresentationUrl("https://www.example.com/app_internal/", "title", webex.Application.ShareOptimizationMode.AUTO_DETECT, false); * ``` */ setPresentationUrl(url: string, title: string, shareOptimizationMode: number, includeAudio: boolean): Promise; /** * Clears the URL previously set using {@link IWebexAppsMeetingState.setPresentationUrl | setPresentationUrl()} * * @remarks Available since 1.7.0 * * @example * * The following provides value for the url parameter passed as an argument to `setPresentationUrl()`. * * ```javascript * const app = new Application(); * await app.onReady(); * const meeting = await app.context.getMeeting(); * await meeting.clearPresentationUrl(); * ``` */ clearPresentationUrl(): Promise; } export interface IWebexAppsMeeting { sdk: IApplication; states: IWebexAppsMeetingState; initialize: () => Promise; updateStates: (newStates: IWebexAppsMeetingState, eventName?: string) => void; getMeeting: () => Promise; } //# sourceMappingURL=meeting.interfaces.d.ts.map