/* 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 nsIDOMBlob;

// If this is changed, change the WebIDL dictionary as well.
dictionary MmsAttachment
{
  DOMString? id;
  DOMString? location;
  nsIDOMBlob content; // If the content blob is a text/plain type, the encoding
                      // for text should always be "utf-8".
};

[scriptable, builtinclass, uuid(2e5e1c16-b7af-11e2-af04-8f4b1610a600)]
interface nsIDOMMozMmsMessage : nsISupports
{
  /**
   * |type| is always "mms".
   */
  readonly attribute DOMString type;

  readonly attribute long      id;

  readonly attribute unsigned long long threadId;

  /**
   * Should be "not-downloaded", "received", "sending", "sent" or "error".
   */
  readonly attribute DOMString delivery;

  [implicit_jscontext]
  readonly attribute jsval     deliveryStatus; // DOMString[]

  readonly attribute DOMString sender;

  [implicit_jscontext]
  readonly attribute jsval     receivers;      // DOMString[]

  [implicit_jscontext]
  readonly attribute jsval     timestamp;      // Date object

  readonly attribute boolean   read;
  readonly attribute DOMString subject;
  readonly attribute DOMString smil;

  [implicit_jscontext]
  readonly attribute jsval     attachments;    // MmsAttachment[]

  [implicit_jscontext]
  readonly attribute jsval     expiryDate;     // Date object
                                               // Expiry date for an MMS to be
                                               // manually downloaded.
};
