//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  The <code>CSSStyleSheet</code> interface is a concrete interface
	///  used to represent a CSS style sheet i.e. a style sheet whose
	///  content type is "text/css".
	///  </remarks>		<short>    The <code>CSSStyleSheet</code> interface is a concrete interface  used to represent a CSS style sheet i.</short>
	[SmokeClass("DOM::CSSStyleSheet")]
	public class CSSStyleSheet : DOM.StyleSheet, IDisposable {
 		protected CSSStyleSheet(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(CSSStyleSheet), this);
		}
		// DOM::CSSStyleSheet* CSSStyleSheet(DOM::CSSStyleSheetImpl* arg1); >>>> NOT CONVERTED
		public CSSStyleSheet() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSStyleSheet", "CSSStyleSheet()", typeof(void));
		}
		public CSSStyleSheet(DOM.CSSStyleSheet other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSStyleSheet#", "CSSStyleSheet(const DOM::CSSStyleSheet&)", typeof(void), typeof(DOM.CSSStyleSheet), other);
		}
		public CSSStyleSheet(DOM.StyleSheet other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSStyleSheet#", "CSSStyleSheet(const DOM::StyleSheet&)", typeof(void), typeof(DOM.StyleSheet), other);
		}
		/// <remarks>
		///  If this style sheet comes from an <code>\@import</code> rule,
		///  the <code>ownerRule</code> attribute will contain the
		///  <code>CSSImportRule</code> . In that case, the <code>ownerNode</code>
		///  attribute in the <code>StyleSheet</code> interface
		///  will be <code>null</code> . If the style sheet comes from an
		///  element or a processing instruction, the <code>ownerRule</code>
		///  attribute will be <code>null</code> and the
		///  <code>ownerNode</code> attribute will contain the <code>Node</code> .
		///      </remarks>		<short>    If this style sheet comes from an <code>\@import</code> rule,  the <code>ownerRule</code> attribute will contain the  <code>CSSImportRule</code> .</short>
		public DOM.CSSRule OwnerRule() {
			return (DOM.CSSRule) interceptor.Invoke("ownerRule", "ownerRule() const", typeof(DOM.CSSRule));
		}
		/// <remarks>
		///  The list of all CSS rules contained within the style sheet.
		///  This includes both <a
		///  href="http://www.w3.org/TR/REC-CSS2/syndata.html#q8"> rule sets
		///  </a> and <a
		///  href="http://www.w3.org/TR/REC-CSS2/syndata.html#at-rules">
		///  at-rules </a> .
		///      </remarks>		<short>    The list of all CSS rules contained within the style sheet.</short>
		public DOM.CSSRuleList CssRules() {
			return (DOM.CSSRuleList) interceptor.Invoke("cssRules", "cssRules() const", typeof(DOM.CSSRuleList));
		}
		/// <remarks>
		///  Used to insert a new rule into the style sheet. The new rule
		///  now becomes part of the cascade.
		/// <param> name="rule" The parsable text representing the rule. For rule
		///  sets this contains both the selector and the style declaration.
		///  For at-rules, this specifies both the at-identifier and the
		///  rule content.
		/// </param><param> name="index" The index within the style sheet's rule list of
		///  the rule before which to insert the specified rule. If the
		///  specified index is equal to the length of the style sheet's
		///  rule collection, the rule will be added to the end of the style
		///  sheet.
		/// </param>  INDEX_SIZE_ERR: Raised if the specified index is not a valid
		///  insertion point.
		///   NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
		///  readonly.
		///      </remarks>		<return> The index within the style sheet's rule collection of
		///  the newly inserted rule.
		/// </return>
		/// 		<short>    Used to insert a new rule into the style sheet.</short>
		public ulong InsertRule(DOM.DOMString rule, ulong index) {
			return (ulong) interceptor.Invoke("insertRule#$", "insertRule(const DOM::DOMString&, unsigned long)", typeof(ulong), typeof(DOM.DOMString), rule, typeof(ulong), index);
		}
		/// <remarks>
		///  Used to delete a rule from the style sheet.
		/// <param> name="index" The index within the style sheet's rule list of
		///  the rule to remove.
		/// </param>  NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
		///  readonly.
		///      </remarks>		<short>    Used to delete a rule from the style sheet.</short>
		public void DeleteRule(ulong index) {
			interceptor.Invoke("deleteRule$", "deleteRule(unsigned long)", typeof(void), typeof(ulong), index);
		}
		~CSSStyleSheet() {
			interceptor.Invoke("~CSSStyleSheet", "~CSSStyleSheet()", typeof(void));
		}
		public new void Dispose() {
			interceptor.Invoke("~CSSStyleSheet", "~CSSStyleSheet()", typeof(void));
		}
	}
}
