import IPostMessage from '../../IPostMessage';
import IDebug from './IDebug';
/**
* The `sos.management.debug` API groups together methods for working with native debug mode.
*
* :::note
* Some modern systems might require additional steps to enable the native debug mode. Please refer to the [native debug documentation](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) for more information.
* :::
*
*
* Debug Management Capabilities
* | Capability | Description |
* |:------------|:-------------|
* | `SET_DEBUG` | If the device can enable or disable the native debug mode. |
*
* If you want to check if the device supports this capability, use [`sos.management.supports()`](https://developers.signageos.io/sdk/sos_management/#supports).
*
*/
export default class Debug implements IDebug {
private messagePrefix;
private postMessage;
/** @internal */
constructor(messagePrefix: string, postMessage: IPostMessage);
/**
* The `enable()` method enables the [native debug](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) mode.
*
* @returns {Promise} A promise that resolves when the debug mode is enabled.
* @since 3.0.0
*
* @example // {@link https://github.com/signageos/applet-examples/tree/master/examples/management-js-api/debug | Example applet with activating debug mode}
*
* @example
* await sos.management.debug.enable();
*/
enable(): Promise;
/**
* The `enable()` method disables the [native debug](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) mode.
*
* @returns {Promise} A promise that resolves when the debug mode is disabled.
* @since 3.0.0
*
* @example
* await sos.management.debug.disable();
*/
disable(): Promise;
/**
* The `isEnabled()` method returns whether the [native debug](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) mode is enabled.
*
* @returns {Promise} A promise that resolves to `true` if the debug mode is enabled, otherwise `false`.
* @since 4.1.0
*
* @example
* const isDebugEnabled = await sos.management.debug.isEnabled();
* console.log(`Native debug mode is ${isDebugEnabled ? 'enabled' : 'disabled'}.`);
*/
isEnabled(): Promise;
/**
* The `setDebug(enabled)` method sets the native debug mode to the specified state.
*
* @param enabled `true` to enable the debug mode, `false` to disable it.
* @returns {Promise} A promise that resolves when the debug mode is set.
* @throws {Error} If the `enabled` parameter is not a boolean.
* @since 4.1.0
*
* @example
* const enabled = await sos.management.debug.isEnabled();
* if (!enabled) {
* await sos.management.debug.setDebug(true);
* }
*/
setDebug(enabled: boolean): Promise;
private getMessage;
}