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

interface nsIDOMMozSmsMessage;
interface nsIDOMMozMmsMessage;
interface nsIDOMMozSmsSegmentInfo;

%{C++
#define MOBILE_MESSAGE_SERVICE_CID { 0x829c1dd6, 0x0466, 0x4591, { 0x83, 0x6f, 0xb8, 0xf6, 0xfd, 0x1f, 0x7b, 0xa5 } }
#define MOBILE_MESSAGE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/mobilemessageservice;1"
%}

[scriptable, builtinclass, uuid(4cbc9594-84c3-11e2-a274-ebada93fa6cd)]
interface nsIMobileMessageService : nsISupports
{
  [implicit_jscontext]
  nsIDOMMozSmsMessage createSmsMessage(in long      id,
                                       in DOMString delivery,
                                       in DOMString deliveryStatus,
                                       in DOMString sender,
                                       in DOMString receiver,
                                       in DOMString body,
                                       in DOMString messageClass,
                                       in jsval     timestamp,
                                       in bool      read);

  [implicit_jscontext]
  nsIDOMMozMmsMessage createMmsMessage(in long      id,
                                       in DOMString delivery,
                                       in jsval     deliveryStatus,
                                       in DOMString sender,
                                       in jsval     receivers,
                                       in jsval     timestamp,
                                       in boolean   read,
                                       in DOMString subject,
                                       in DOMString smil,
                                       in jsval     attachments);

  nsIDOMMozSmsSegmentInfo createSmsSegmentInfo(in long segments,
                                               in long charsPerSegment,
                                               in long charsAvailableInLastSegment);
};
