import IPostMessage from '../../IPostMessage';
import IRemoteControl from './IRemoteControl';
/**
* The `sos.management.remoteControl` groups together methods for enabling or disabling control of the device using an IR remote controller (TV controller).
*
*
* Remote Control Management Capabilities
* | Capability | Description |
* |:------------|:-------------|
* | `SET_REMOTE_CONTROL_ENABLED` | If device supports setting remote control |
*
* 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 RemoteControl implements IRemoteControl {
private messagePrefix;
private postMessage;
/** @internal */
constructor(messagePrefix: string, postMessage: IPostMessage);
/**
* The `enable()` method enables remote control.
*
* :::warning
* **Android:** To prevent Android from displaying the Android homepage and thus not showing your content, you
* must Enable Kiosk Mode (or Lock Remote Control) either through Box device settings or through API.
*
* Always set the Remote Control Lock to `enable` after the deployment.
* :::
* @returns {Promise} A promise that resolves when the remote control is successfully enabled.
* @throws {Error} If the device does not support remote control management.
* @since 3.0.0
*
* @example
* await sos.management.remoteControl.enable();
*/
enable(): Promise;
/**
* The `disable()` method disables remote control.
*
* @retuns {Promise} A promise that resolves when the remote control is successfully disabled.
* @throws {Error} If the device does not support remote control management.
* @since 3.0.0
*
* @example
* await sos.management.remoteControl.disable();
*/
disable(): Promise;
/**
* The `isEnabled()` method returns whether the remote control is enabled.
*
* @returns {Promise} A promise that resolves to `true` if remote control is enabled, otherwise `false`.
* @throws {Error} If the device does not support remote control management.
* @since 4.0.0
*
* @example
* const enabled = await sos.management.remoteControl.isEnabled();
*/
isEnabled(): Promise;
/**
* The `lock()` method is an alias for the `disable()` method.
*
* @returns {Promise} A promise that resolves when the remote control is successfully locked (disabled).
* @throws {Error} If the device does not support remote control management.
* @since 4.0.0
*
* @example
* await sos.management.remoteControl.lock();
*/
lock(): Promise;
/**
* The `unlock()` method is an alias for the `enable()` method.
*
* @returns {Promise} A promise that resolves when the remote control is successfully unlocked (enabled).
* @throws {Error} If the device does not support remote control management.
* @since 4.0.0
*
* @example
* await sos.management.remoteControl.unlock();
*/
unlock(): Promise;
/**
* The `isLocked()` method returns whether the remote control is locked (disabled).
*
* @returns {Promise} A promise that resolves to `true` if the remote control is locked (disabled), otherwise `false`.
* @throws {Error} If the device does not support remote control management.
* @since 4.0.0
*
* @example
* const locked = await sos.management.remoteControl.isLocked();
*/
isLocked(): Promise;
private setEnabled;
private getMessage;
}