/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIDOMEventTarget.idl"

interface nsIDOMEventListener;
interface nsIDOMMozSmsRequest;
interface nsIDOMMozSmsFilter;

[scriptable, builtinclass, uuid(6363c0ff-b58f-4fb3-9707-0ba27f120b2c)]
interface nsIDOMMozSmsManager : nsIDOMEventTarget
{
  unsigned short      getNumberOfMessagesForText(in DOMString text);

  // The first parameter can be either a DOMString (only one number) or an array
  // of DOMStrings.
  // The method returns a SmsRequest object if one number has been passed.
  // An array of SmsRequest objects otherwise.
  jsval send(in jsval number, in DOMString message);

  [binaryname(GetMessageMoz)] nsIDOMMozSmsRequest getMessage(in long id);

  // The parameter can be either a message id or a SmsMessage.
  nsIDOMMozSmsRequest delete(in jsval param);

  nsIDOMMozSmsRequest getMessages(in nsIDOMMozSmsFilter filter, in boolean reverse);

  nsIDOMMozSmsRequest markMessageRead(in long id, in boolean aValue);

  attribute nsIDOMEventListener onreceived;
  attribute nsIDOMEventListener onsent;
  attribute nsIDOMEventListener ondelivered;
};
