/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * The contents of this file are subject to the Netscape Public License
 * Version 1.0 (the "NPL"); you may not use this file except in
 * compliance with the NPL.  You may obtain a copy of the NPL at
 * http://www.mozilla.org/NPL/
 *
 * Software distributed under the NPL is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
 * for the specific language governing rights and limitations under the
 * NPL.
 *
 * The Initial Developer of this code under the NPL is Netscape
 * Communications Corporation.  Portions created by Netscape are
 * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
 * Reserved.
 */

/*
 * network-oriented interface to newsgroups.
 * This is similar to the old MSG_NewsFolderInfo but is an interface
 * only NNTP uses for talking to the news server and maintaining state.
 *
 */


#include "nsISupports.idl"

%{ C++
#include "nsMsgKeySet.h"
%}

interface nsMsgKeySet;
interface nsINNTPNewsgroupList;

[scriptable, uuid(1A39CD90-ACAF-11d2-B7EE-00805F05FFA5)]
interface nsINNTPNewsgroup : nsISupports {
  
  attribute string name;
  attribute string prettyName;
  
  attribute string password;
  attribute string username;

  attribute boolean needsExtraInfo;
  
  boolean IsOfflineArticle(in long num);

  attribute boolean category;

  attribute boolean subscribed;
  attribute boolean wantNewTotals;
  attribute nsINNTPNewsgroupList newsgroupList;

  void UpdateSummaryFromNNTPInfo(in long oldest,
                                 in long youngest,
                                 in long total_messages);

  void Initialize(in string name,
                  in nsMsgKeySet set,
                  in boolean subscribed);
};


