/* 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"

interface nsIMsgFolder;
interface nsIUrlListener;
interface nsIMsgWindow;

[scriptable, uuid(86e5bd0e-c324-11e3-923a-00269e4fddc1)]
interface nsINewsBlogFeedDownloader : nsISupports
{
  void downloadFeed(in nsIMsgFolder aFolder,
                    in nsIUrlListener aUrlListener,
                    in bool aIsBiff,
                    in nsIMsgWindow aMsgWindow);

  /**
   * A convient method to subscribe to feeds without going through the Subscribe
   * dialog; used by drag and drop and commandline.
   */
  void subscribeToFeed(in string aUrl,
                       in nsIMsgFolder aFolder,
                       in nsIMsgWindow aMsgWindow);

  /**
   * Called when the RSS Incoming Server detects a change to an RSS folder name,
   * such as delete (move to trash), move/copy, or rename. We then need to update
   * the feeds.rdf subscriptions data source.
   *
   * @param  nsIMsgFolder aFolder      - the folder, new if rename or target of
   *                                      move/copy folder (new parent)
   * @param  nsIMsgFolder aOrigFolder  - original folder
   * @param  string aAction            - "move" or "copy" or "rename"
   */
  void updateSubscriptionsDS(in nsIMsgFolder aFolder,
                             in nsIMsgFolder aOrigFolder,
                             in string aAction);
};

