/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * The contents of this file are subject to the Netscape Public
 * License Version 1.1 (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.mozilla.org/NPL/
 *
 * 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.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is Netscape
 * Communications Corporation.  Portions created by Netscape are
 * Copyright (C) 1998 Netscape Communications Corporation. All
 * Rights Reserved.
 *
 * Contributor(s): 
 */
 
#include "nsISupports.idl"
#include "nsIAbCard.idl"
#include "nsISupportsArray.idl"

[ptr] native nsFileSpec(nsFileSpec);
[ptr] native DIR_Server(DIR_Server);

%{C++
#include "nsFileSpec.h"
#include "nsDirPrefs.h"
%}

[scriptable, uuid(1920E485-0709-11d3-A2EC-001083003D0C)]
interface nsIAbDirectory : nsISupports {

    attribute wstring dirName;
    attribute unsigned long  lastModifiedDate;
    attribute DIR_Server server;

	readonly attribute string dirFilePath;
	readonly attribute nsIEnumerator childNodes;
	readonly attribute nsIEnumerator childCards;
	nsIAbCard addChildCards(in string uriName);
	nsIAbDirectory addDirectory(in string uriName);
	void deleteDirectories(in nsISupportsArray dierctories);
	void deleteCards(in nsISupportsArray cards);
	boolean hasCard(in nsIAbCard cards);
	boolean hasDirectory(in nsIAbDirectory dir);
	readonly attribute nsIEnumerator mailingList;
	void createNewDirectory(in wstring dirName, in string fileName);
	string getDirUri();

};
