import IPostMessage from '../../IPostMessage';
import { IpAddressType } from '../MDC/Mdc';
import INativeNmcCommands, { INMCResponse } from './INativeNmcCommands';
import { NmcCommands } from './CommandsNmc';
/**
* The `sos.native.nmc` API groups together methods for controlling WebOs devices using NMC commands.
*
* :::warning
* This API is currently available on WebOs devices only.
* :::
*
*
* NMC Management Capabilities
* | Capability | Description |
* |:------------|:-------------|
* | `NATIVE_COMMANDS_NMC` | If device supports performing NMC commands |
*
* 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 Nmc implements INativeNmcCommands {
private messagePrefix;
private postMessage;
static MESSAGE_PREFIX: string;
/** @internal */
constructor(messagePrefix: string, postMessage: IPostMessage);
/**
* The `sendOne()` method sends an NMC command to another WebOS device on the same network or to the localhost.
*
* @param ipAddress The IP address of the device to send the command to.
* @param command The NMC command to send. See {@link NmcCommands} for available commands.
* @param data The optional data to send with the command.
* @throws {Error} If the `ipAddress` is not a valid string or if the `command` is not a valid number.
* @throws {Error} If the `data` is not an array of strings.
* @throws {Error} If any error occurs during the command execution.
* @returns {Promise} NMC response object containing the result of the command execution.
* @since 6.5.1
*
* @example
* // Send a command to a WebOS device at IP address for menu open
* await sos.native.nmc.sendOne('192.168.0.10', ['m','c'], ['43']);
*
* // Send a command to a WebOS device at IP address for device power on
* await sos.native.nmc.sendOne('192.168.0.10', ['k', 'a'], ['1']);
*
*/
sendOne(ipAddress: IpAddressType, command: typeof NmcCommands, data: string[] | []): Promise;
private getMessage;
private getMessagePrefix;
}