/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 nsIUrlListener;
interface nsIURI;
interface nsINntpUrl;
interface nsIMsgFolder;
interface nsIMsgWindow;

[scriptable, uuid(30106238-0991-11d4-a565-0060b0fc04b7)]
interface nsINNTPProtocol : nsISupports {

  /////////////////////////////////////////////////////////////////////////
  // isBusy is true if the connection is currently processing a url
  // and false otherwise.
  /////////////////////////////////////////////////////////////////////////
  attribute boolean isBusy;

  void LoadNewsUrl(in nsIURI aUri, in nsISupports aConsumer);
  void Initialize(in nsIURI aURL, in nsIMsgWindow aMsgWindow);

    // Get last active time stamp
    void GetLastActiveTimeStamp(out PRTime aTimeStamp);

  attribute boolean isCachedConnection;
  readonly attribute nsIMsgFolder currentFolder;

  void CloseConnection();
};
