/* 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"
#include "nsISimpleEnumerator.idl"

/*
 * This is a proxy for libpurple PurpleAccountOption
 */

[scriptable, uuid(e781563f-9088-4a96-93e3-4fb6f5ce6a77)]
interface prplIPref: nsISupports {
  const short typeBool   = 1;
  const short typeInt    = 2;
  const short typeString = 3;
  const short typeList   = 4;

  readonly attribute AUTF8String name;
  readonly attribute AUTF8String label;
  readonly attribute short type;
  readonly attribute boolean masked;

  boolean     getBool();
  long        getInt();
  AUTF8String getString();
  // enumerator of prplIKeyValuePair
  nsISimpleEnumerator getList();
  AUTF8String getListDefault();
};

[scriptable, uuid(8fc16882-ba8e-432a-999f-0d4dc104234b)]
interface prplIKeyValuePair: nsISupports {
  readonly attribute AUTF8String name;
  readonly attribute AUTF8String value;
};
