/* ***** BEGIN LICENSE BLOCK *****
 * Version: GPL 3.0
 *
 * The contents of this file are subject to the General Public License
 * 3.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.gnu.org/licenses/gpl.html
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * Author: Michel Verbraak (info@1st-setup.nl)
 * Website: http://www.1st-setup.nl/
 * email: info@1st-setup.nl
 *
 * This interface can be used to for updates
 *
 * ***** BEGIN LICENSE BLOCK *****/

#include "nsISupports.idl"

[scriptable, uuid(fb9aeba0-152a-11e2-892e-0800200c9a66)]
interface mivUpdater : nsISupports
{

  const unsigned long ERR_ADDON_NOT_FOUND_BY_ID = 1;
  const unsigned long ERR_WRONG_READYSTATE = 2;
  const unsigned long ERR_GETTING_REMOTE_UPDATE_DETAILS = 3;

  readonly attribute boolean needsReboot;
  readonly attribute jsval installListener;

  void checkForUpdate(in AUTF8String aExtension, in jsval aCallBack);

  void installNewVersion(in jsval aDetails, in boolean aNeedsReboot);

};
