/* vim: ts=2 sw=2 expandtab cindent
 *
 * BEGIN FLOCK GPL
 *
 * Copyright Flock Inc. 2005-2008
 * http://flock.com
 *
 * This file may be used under the terms of the
 * GNU General Public License Version 2 or later (the "GPL"),
 * http://www.gnu.org/licenses/gpl.html
 *
 * 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.
 *
 * END FLOCK GPL
 */

#include "nsISupports.idl"

#include "nsIRDFDataSource.idl"
#include "nsIBookmarksService.idl"

interface nsIFile;

/**
 * flockIFavoritesService is the interface that the flock favorites service
 * exposes to allow the rest of the browser and extensions to interact
 * with favorites data.
 */
[scriptable, uuid(2ef98743-1714-4de1-88f2-7771c63dcde8)]
interface flockIFavoritesService : nsISupports {
  void setupDefaultFavorites();

  void init(in nsIRDFDataSource aDataSource);

  nsIRDFResource createBookmarkWithTags(in wstring aName,
                                        in wstring aURL,
                                        in wstring aShortcutURL,
                                        in wstring aDescription,
                                        in wstring aDocCharSet,
                                        in wstring aPostData,
                                        in wstring aTags);

  nsIRDFResource addBookmarkToFolder(in wstring aFolderName,
                                     in wstring aName,
                                     in wstring aURL,
                                     in wstring aShortcutURL,
                                     in wstring aDescription,
                                     in wstring aDocCharSet,
                                     in wstring aPostData,
                                     in wstring aTags);

  void writeBookmarks(in nsIFile aBookmarksFile);

  void importBookmarks(in nsIFile aBookmarksFile);
};
