/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

[scriptable, function, uuid(82e7c515-d174-4e84-9091-e7e89617a6d9)]
interface nsIEngineeringModeMessageHandler : nsISupports
{
  void handleMessage(in DOMString message);
};

[scriptable, uuid(fdae21b9-bd8c-4d01-bc6a-6c3a7b5efb27)]
interface nsIEngineeringModeCallback : nsISupports
{
  void onsuccess([optional] in DOMString value);
  void onerror(in int32_t error);
};

// Implemented by contract id @mozilla.org/b2g/engineering-mode-impl;1
[scriptable, uuid(7251c99b-225f-4e39-8336-a7e2a087aa21)]
interface nsIEngineeringMode : nsISupports
{
  void getValue(in DOMString name, in nsIEngineeringModeCallback callback);
  void setValue(in DOMString name, in DOMString value,
                in nsIEngineeringModeCallback callback);
  void setMessageHandler(in nsIEngineeringModeMessageHandler handler);
};

