import IPostMessage from '../../IPostMessage';
import IAutoRecovery, { IAutoRecoveryConfiguration } from './IAutoRecovery';
/**
* The `sos.management.autoRecovery` API provides methods for managing the auto-recovery feature of the signageOS app.
*
* The Auto Recovery feature is designed to automatically recover the signageOS app in case of a crash or unexpected shutdown
* or switching input to a different value, e.g., HDMI.
*
*
* Auto Recovery Management Capabilities
* | Capability | Description |
* |:------------|:-------------|
* | `AUTO_RECOVERY` | If the device can enable or disable the auto recovery function. |
*
* 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 AutoRecovery implements IAutoRecovery {
private messagePrefix;
private postMessage;
/** @internal */
constructor(messagePrefix: string, postMessage: IPostMessage);
/**
* The `get()` method retrieves the current auto-recovery configuration.
*
* @returns {Promise} A promise that resolves to the current auto-recovery configuration.
* @since 5.0.0
*
* @example
* const autoRecoveryConfig = await sos.management.autoRecovery.get();
* if (autoRecoveryConfig.enabled) {
* console.log(`Auto-recovery is enabled with a healthcheck interval of ${autoRecoveryConfig.healthcheckIntervalMs} ms.`);
* }
*/
get(): Promise;
/**
* The `set()` method allows to enable or disable the auto-recovery feature and configure its settings.
*
* :::note
* The configuration object has different properties depending on if enabled is true or false.
* :::
*
* @param configuration The configuration object for auto-recovery settings.
* @param configuration.enabled A boolean to set auto-recovery to enabled or disabled state.
* @param configuration.autoEnableTimeoutMs The timeout in milliseconds after which the auto-recovery will be automatically enabled if it was disabled.
* @param configuration.healthcheckIntervalMs The interval in milliseconds for the health check if application is running in foreground.
* @returns {Promise} A promise that resolves when the auto-recovery settings are successfully set.
* @throws {Error} If the configuration is invalid.
* @since 5.0.0
*
* @example
* // Enable auto-recovery with a healthcheck interval of 5000 ms
* await sos.management.autoRecovery.set({
* enabled: true,
* healthcheckIntervalMs: 5000,
* });
*/
set(configuration: IAutoRecoveryConfiguration): Promise;
private getMessage;
}