/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * 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.
 */

#include "nsISupports.idl"

interface nsIFolder;

/*
 * Interface for incoming mail/news host
 * this is the base interface for all mail server types (imap, pop, nntp, etc)
 * often you will want to add extra interfaces that give you server-specific
 * attributes and methods.
 */

[scriptable, uuid(60dcb100-e3f2-11d2-b7fc-00805f05ffa5)]
interface nsIMsgIncomingServer : nsISupports {

  /* internal pref key */
  attribute string key;

  /* pretty name - should be "userid on hostname" if this pref is not set */
  attribute string prettyName;

  /* hostname of the server */
  attribute string hostName;

  /* userid to log into the server */
  attribute string username;

  /* server type, i.e. "pop3", "imap", "nntp", etc */
  readonly attribute string type;

  /* should we remember the password? */
  attribute boolean rememberPassword;

  /* the password to login with (in cleartext for now) */
  attribute string password;

  /* should we download whole messages when biff goes off? */
  attribute boolean downloadOnBiff;

  /* should we biff the server? */
  attribute boolean doBiff;

  /* how often to biff */
  attribute long biffMinutes;

  /* the on-disk path to message storage for this server */
  attribute string localPath;

  /* the RDF URI for the root mail folder */
  readonly attribute string serverURI;

  /* the root folder for this server */
  attribute nsIFolder RootFolder;

  /* do a biff */
  void PerformBiff();
};
