import { EventEmitter } from 'events'; import IPostMessage from '../IPostMessage'; import IDebug, { IDebugSetWeinreMessage, WeinreData } from './IDebug'; /** * The `sos.debug` API groups together methods for checking the state of remote debug mode. * * :::note * - This debug is not the "native debug" of the device, but rather a remote debug mode that allows you to connect to the device using Weinre. * - State of the remote debug mode or native debug mode can be changed via Cloud Control or [Rest API](https://developers-staging.signageos.io/api/#tag/DeviceDebug/paths/~1v1~1device~1%7BdeviceUid%7D~1debug/put). * ::: */ export default class Debug extends EventEmitter implements IDebug { readonly window: Window & WeinreData; private messagePrefix; private postMessage; static MESSAGE_PREFIX: string; static DEBUG_CHANGED: string; /** @internal */ constructor(window: Window & WeinreData, messagePrefix: string, postMessage: IPostMessage); /** * The `isRemoteDebugEnabled()` method returns the state of the Device debug mode. * * @returns {Promise} Resolves to `true` if the remote debug mode is enabled, otherwise `false`. * @since 5.8.0 */ isRemoteDebugEnabled(): Promise; /** * The `onRemoteDebugChanged()` method sets up a listener, which is called whenever the state of the Device debug mode is changed. * * @param listener The listener to be called when the state of the remote debug mode is changed. * @returns {void} Resolves when the listener is successfully set up. * @since 5.8.0 */ onRemoteDebugChanged(listener: (data: { enabled: boolean; }) => void): void; /** @internal */ handleMessageData(data: IDebugSetWeinreMessage): void; private getMessage; }