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.
 * :::
 *
 * <details>
 *     <summary>NMC Management Capabilities</summary>
 * 		| 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).
 * </details>
 */
export default class Nmc implements INativeNmcCommands {
    private messagePrefix;
    private postMessage;
    static MESSAGE_PREFIX: string;
    /** @internal */
    constructor(messagePrefix: string, postMessage: IPostMessage<any>);
    /**
     * 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<INMCResponse>} 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<INMCResponse>;
    private getMessage;
    private getMessagePrefix;
}
