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.
 *
 * <details>
 *     <summary>Auto Recovery Management Capabilities</summary>
 * 		| 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).
 * </details>
 */
export default class AutoRecovery implements IAutoRecovery {
    private messagePrefix;
    private postMessage;
    /** @internal */
    constructor(messagePrefix: string, postMessage: IPostMessage<IAutoRecoveryConfiguration>);
    /**
     * The `get()` method retrieves the current auto-recovery configuration.
     *
     * @returns {Promise<IAutoRecoveryConfiguration>} 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<IAutoRecoveryConfiguration>;
    /**
     * 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<void>} 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<void>;
    private getMessage;
}
