/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "domstubs.idl"

interface nsIDOMSVGTransform;
interface nsIDOMSVGMatrix;

[scriptable, uuid(6302eb5d-25d5-4df6-ab8b-e57e37c1a48d)]
interface nsIDOMSVGTransformList : nsISupports
{ 
  readonly attribute unsigned long numberOfItems;
  readonly attribute unsigned long length; // synonym for numberOfItems

  void clear();
      // raises( DOMException );
  nsIDOMSVGTransform initialize(in nsIDOMSVGTransform newItem);
      // raises( DOMException, SVGException );
  nsIDOMSVGTransform getItem(in unsigned long index);
      // raises( DOMException );
  [getter,noscript,notxpcom,nostdcall] nsIDOMSVGTransform getItemAt(in unsigned long index);
  nsIDOMSVGTransform insertItemBefore(in nsIDOMSVGTransform newItem,
                                      in unsigned long index);
      //  raises( DOMException, SVGException );
  nsIDOMSVGTransform replaceItem(in nsIDOMSVGTransform newItem,
                                 in unsigned long index);
      // raises( DOMException, SVGException );
  nsIDOMSVGTransform removeItem(in unsigned long index);
      //  raises( DOMException );
  nsIDOMSVGTransform appendItem(in nsIDOMSVGTransform newItem);
      // raises( DOMException, SVGException );
  nsIDOMSVGTransform createSVGTransformFromMatrix(in nsIDOMSVGMatrix matrix);
  nsIDOMSVGTransform consolidate();
};
