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

[scriptable, uuid(205d4b2b-1ccf-4879-9ef1-f08942566151)]
interface imICoreService: nsISupports {
  readonly attribute boolean initialized;

  // This will emit a prpl-init notification. After this point the 'initialized'
  // attribute will be 'true' and it's safe to access the services for accounts,
  // contacts, conversations and commands.
  void init();

  // This will emit a prpl-quit notification. This is the last opportunity to
  // use the aforementioned services before they are uninitialized.
  void quit();

  // returns an enumerator on a pplIProtocol array
  nsISimpleEnumerator getProtocols();

  prplIProtocol getProtocolById(in AUTF8String aProtocolId);

  readonly attribute imIUserStatusInfo globalUserStatus;
};
