/*
 * 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 "nsIRDFDataSource.idl"

interface flockISearchService;
interface flockISearchListener;

[scriptable, uuid(8a72eb5f-ef48-4931-940c-308dc3268434)]
interface flockISearchManager : nsISupports
{
  readonly attribute nsISimpleEnumerator services;

  readonly attribute nsISimpleEnumerator enabledServices;
  readonly attribute nsISimpleEnumerator orderedServices;

  readonly attribute nsISimpleEnumerator searchElsewhereList;

  void search(in AString aQuery,
              in PRUint64 aNumResults,
              in flockISearchListener aListener,
              in nsIRDFDataSource aDataSource);

  boolean isServiceEnabled(in AString aShortName);

  flockISearchService getServiceFromShortname(in AString aShortName);
};
