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.
 * :::
 *
 * <details>
 *     <summary>Debug Management Capabilities</summary>
 * 		| 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).
 * </details>
 */
export default class Debug implements IDebug {
    private messagePrefix;
    private postMessage;
    /** @internal */
    constructor(messagePrefix: string, postMessage: IPostMessage<any>);
    /**
     * The `enable()` method enables the [native debug](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) mode.
     *
     * @returns {Promise<void>} 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<void>;
    /**
     * The `enable()` method disables the [native debug](https://docs.signageos.io/hc/en-us/articles/4413935787154-Applet-Native-Device-Debug) mode.
     *
     * @returns {Promise<void>} A promise that resolves when the debug mode is disabled.
     * @since 3.0.0
     *
     * @example
     * await sos.management.debug.disable();
     */
    disable(): Promise<void>;
    /**
     * 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<boolean>} 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<boolean>;
    /**
     * 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<void>} 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<void>;
    private getMessage;
}
