import IPostMessage from '../../IPostMessage';
import IOSInfo from './IOSInfo';
import IOS, { SystemMemoryInfo } from './IOS';
/**
 * The `sos.management.os` API groups together methods for retrieving information about the system.
 *
 *
 * <details>
 *     <summary>OS Management Capabilities</summary>
 * 		| Capability | Description |
 * 		|:------------|:-------------|
 * 		| `SYSTEM_CPU` | If device supports collecting CPU usage information |
 * 		| `SYSTEM_MEMORY` | If device supports collecting memory usage information |
 *
 * 		If you want to check if the device supports those capabilities, use [`sos.management.supports()`](https://developers.signageos.io/sdk/sos_management/#supports).
 * </details>
 */
export default class OS implements IOS {
    private messagePrefix;
    private postMessage;
    /** @internal */
    constructor(messagePrefix: string, postMessage: IPostMessage<any>);
    /**
     * The `getInfo()` method returns info about the system of the device, such as what current version of it is installed on the device. Major
     * version of the current operating system. It's usually 1 or 2 digits, including or excluding dot notation.
     *
     * @returns {Promise<IOSInfo>} Resolves to an object containing information about the operating system.
     * @since 5.0.0
     *
     * @example
     * const osInfo = await sos.management.os.getInfo();
     * console.log(`Current OS version is: ${osInfo.version}`);
     */
    getInfo(): Promise<IOSInfo>;
    /**
     * The `getCpuUsage()` method returns the current total CPU usage (ranging from 0 to 100%).
     *
     * @throws {Error} If the CPU usage is not supported.
     * @returns {Promise<number>} Resolves to the current CPU usage percentage.
     * @since 5.4.0
     *
     * @example
     * const cpuUsage = await sos.management.os.getCpuUsage();
     * console.log(`Current CPU usage is: ${cpuUsage}%`);
     */
    getCpuUsage(): Promise<number>;
    /**
     * The `getMemoryUsage()` method returns the total memory amount in bytes, the currently used memory, and the remaining free memory.
     *
     * @throws {Error} If the memory usage is not supported.
     * @returns {Promise<SystemMemoryInfo>} Resolves to an object containing total, used, and free memory in bytes.
     * @since 5.4.0
     *
     * @example
     * const memoryUsage = await sos.management.os.getMemoryUsage();
     * console.log(`Memory usage: ${((memoryUsage.used / memoryUsage.total) * 100).toFixed(2)}%`);
     */
    getMemoryUsage(): Promise<SystemMemoryInfo>;
    private getMessage;
}
