// NEW IN CSS-E OM
interface CSSIdentList {
      readonly attribute DOMString     identListText;
      readonly attribute unsigned long length;
      DOMString          item(in unsigned long index);
};

// Introduced in DOM Level 2:
interface CSSRuleList {
      readonly attribute unsigned long  length;
                         CSSRule        item(in unsigned long index);
      readonly attribute CSSIdentList   classList;  // NEW IN CSS-E OM
      readonly attribute CSSIdentList   idList;     // NEW IN CSS-E OM
};

// Introduced in DOM Level 2:
interface CSSStyleRule : CSSRule {
               attribute DOMString           selectorText;
                                    // raises(DOMException) on setting
               attribute CSSSelectorList     selectors;  // NEW IN CSS-E OM
      readonly attribute CSSStyleDeclaration style;
      readonly attribute CSSIdentList        classList;  // NEW IN CSS-E OM
      readonly attribute CSSIdentList        idList;     // NEW IN CSS-E OM      
};

// NEW IN CSS-E OM
interface CSSSelectorList {
               attribute DOMString              selectorText;
                                    // raises(DOMException) on setting
                                       // identical to CSSStyleRule::selectorText
      readonly attribute unsigned long length;
      CSSSelector        item(in unsigned long index);
      void               deleteCSSSelector(in DOMString old)
                                    raises(DOMException);
      void               appendCSSSelector(in DOMString new)
                                    raises(DOMException);
};

// NEW IN CSS-E OM
interface CSSSimpleSelectorSequence {
      // combinatorType
      const unsigned short NO_COMBINATOR                 = 0;
      const unsigned short DESCENDANT_COMBINATOR         = 1;
      const unsigned short CHILD_COMBINATOR              = 2;
      const unsigned short DIRECT_ADJACENT_COMBINATOR    = 3;
      const unsigned short INDIRECT_ADJACENT_COMBINATOR  = 4;

               attribute DOMString                 tagName;
               attribute DOMString                 namespaceURI;
               attribute DOMString                 prefix;
                        // raises(DOMException) on setting
               attribute CSSIdentList              classList;
               attribute CSSIdentList              idList;
               attribute CSSIdentList              pseudoClassList;
               attribute CSSSimpleSelectorSequenceChain negations;
               attribute CSSAttributeSelectorList  attributeSelectorList;

               attribute unsigned short            combinatorType;

};

// NEW IN CSS-E OM
interface CSSSimpleSelectorSequenceChain {
      readonly attribute unsigned long length;
      CSSSimpleSelectorSequence        item(in unsigned long index);
      void               deleteCSSSimpleSelectorSequence(in DOMString old)
                                    raises(DOMException);
      void               appendCSSSimpleSelectorSequence(in DOMString new)
                                    raises(DOMException);
};


// NEW IN CSS-E OM
interface CSSSelector {
               attribute DOMString                      selectorText;
                                    // raises(DOMException) on setting
               attribute CSSSimpleSelectorSequenceChain chain;
               attribute DOMString                      pseudoElement;
      readonly attribute CSSSpecificity                 specificity;

// NEW IN CSS-E OM
interface CSSSpecificity {
               attribute unsigned short            aCount;
               attribute unsigned short            bCount;
               attribute unsigned short            cCount;
};

// NEW IN CSS-E OM
interface CSSAttributeSelectorList {
      readonly attribute unsigned long length;
      CSSAttributeSelector        item(in unsigned long index);
      void               deleteCSSAttributeSelector(in DOMString old)
                                    raises(DOMException);
      void               appendCSSAttributeSelector(in DOMString new)
                                    raises(DOMException);
};

// NEW IN CSS-E OM
interface CSSAttributeSelector {
               attribute DOMString                 attrName;
               attribute DOMString                 namespaceURI;
               attribute DOMString                 prefix;
                        // raises(DOMException) on setting
               attribute unsigned short            operatorType;
               attribute DOMString                 value;
};