/// import { LogLevel } from '../constants/log'; import { IResolve } from './common.interfaces'; import { IWebexAppsUserState } from './user.interfaces'; /** * Type definition for {@link Application.application | app.application.state} * * @public */ export interface IWebexAppsApplicationState { /** * The given device form factor. * * One of "DESKTOP", "MOBILE", "BROWSER" * @readonly */ deviceType: string | null; /** * Display context (frame) in which the 3rd party app is being rendered. * * One of the following strings "MEETING_SIDEBAR", "MEETING_STANDALONE_WINDOW", "MEETING_MAINVIEW", or "SPACETAB". * * Default is "MEETING_SIDEBAR". * @readonly * */ displayContext: string | null; /** * Indicates if real Ids are being used or derived ids are avaliable. This is based on the ControlHub setting for the given app. * @readonly * */ isPrivateDataAvailable: boolean | null; /** * Indicates the capabilities of the given device. * * > **Note** - Currently not in use and subject to change. * * An empty string array is returned. * * @readonly */ capabilities: string[] | null; /** * Indicates if the embedded app’s link (specified using the setShareUrl method) has been added to the meeting or space by the user. * @readonly */ isShared: boolean | null; /** * Indicates the given theme of the given meetings client, either Theme.LIGHT, or Theme.DARK. * @readonly */ theme: string | null; /** * Indicates the given language being used by the given meetings client. * * Example values: "en-US", "da-DK", etc. * @readonly */ language: string | null; /** * Indicates the SDK version the given meetings client implements. * * Example values: "1.x" for 41.6 to 41.9. * @readonly */ sdkVersion: string | null; /** * General information about the host. This format is subject to change and should only be used for diagnostic purposes. * @readonly */ about: string | null; /** * Indicates the version of the embedded app sdk. * @readonly */ embeddedSdkVersion: string | null; /** * Indicates the application's current view state, IN_FOCUS or OUT_OF_FOCUS. * @readonly */ viewState: string | null; /** * * This holds information about the user. The information obtained will be based on PII restrictions * * {@link IWebexAppsUserState} * * @readonly */ user: IWebexAppsUserState | null; } export type IOnReadyValidator = NodeJS.Timeout | null; export interface IWebexAppsApplication { isReady: boolean; onReadyResolvers: IResolve[]; onReadyValidator: IOnReadyValidator; states: IWebexAppsApplicationState; initialze: () => void; updateStates: (newStates: IWebexAppsApplicationState, eventName?: string) => void; sendPerformanceReport: (report: object) => Promise; setShareUrl: (internalUrl: string, externalUrl: string, title: string, optional?: object) => Promise; clearShareUrl: () => Promise; initiateSystemBrowserOAuth: (authenticateUrl: string) => Promise; isSdkSupported: (version: string) => boolean; onReady: () => Promise; openUrlInSystemBrowser: (url: string) => Promise; subscribeForEvent: (eventName: string) => Promise; getSelectedAudioDevices: (audioDevices: string) => Promise; } interface ILog { logLevel: LogLevel; } export interface IApplicationConfig { logs: ILog; } export {}; //# sourceMappingURL=application.interfaces.d.ts.map