//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  The <code>CSSMediaRule</code> interface represents a <a
	///  href="http://www.w3.org/TR/REC-CSS2/media.html#at-media-rule">
	///  \@media rule </a> in a CSS style sheet. A <code>\@media</code> rule
	///  can be used to delimit style rules for specific media types.
	///  </remarks>		<short>    The <code>CSSMediaRule</code> interface represents a <a  href="http://www.</short>
	[SmokeClass("DOM::CSSMediaRule")]
	public class CSSMediaRule : DOM.CSSRule, IDisposable {
 		protected CSSMediaRule(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(CSSMediaRule), this);
		}
		// DOM::CSSMediaRule* CSSMediaRule(DOM::CSSMediaRuleImpl* arg1); >>>> NOT CONVERTED
		public CSSMediaRule() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSMediaRule", "CSSMediaRule()", typeof(void));
		}
		public CSSMediaRule(DOM.CSSMediaRule other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSMediaRule#", "CSSMediaRule(const DOM::CSSMediaRule&)", typeof(void), typeof(DOM.CSSMediaRule), other);
		}
		public CSSMediaRule(DOM.CSSRule other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSMediaRule#", "CSSMediaRule(const DOM::CSSRule&)", typeof(void), typeof(DOM.CSSRule), other);
		}
		/// <remarks>
		///  A list of <a
		///  href="http://www.w3.org/TR/REC-CSS2/media.html#media-types">
		///  media types </a> for this rule.
		///      </remarks>		<short>    A list of <a  href="http://www.</short>
		public DOM.MediaList Media() {
			return (DOM.MediaList) interceptor.Invoke("media", "media() const", typeof(DOM.MediaList));
		}
		/// <remarks>
		///  A list of all CSS rules contained within the media block.
		///      </remarks>		<short>    A list of all CSS rules contained within the media block.</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 media block.
		/// <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 media block's rule collection
		///  of the rule before which to insert the specified rule. If the
		///  specified index is equal to the length of the media blocks's
		///  rule collection, the rule will be added to the end of the media
		///  block.
		/// </param> \exception DOMException
		///  HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
		///  the specified index. e.g. if an <code>\@import</code> rule is
		///  inserted after a standard rule set or other at-rule.
		///   INDEX_SIZE_ERR: Raised if the specified index is not a valid
		///  insertion point.
		///   NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
		///  readonly.
		///  \exception CSSException
		///   SYNTAX_ERR: Raised if the specified rule has a syntax error
		///  and is unparsable.
		///      </remarks>		<return> The index within the media block's rule collection of
		///  the newly inserted rule.
		/// </return>
		/// 		<short>    Used to insert a new rule into the media block.</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 media block.
		/// <param> name="index" The index within the media block's rule collection
		///  of the rule to remove.
		/// </param> \exception DOMException
		///  INDEX_SIZE_ERR: Raised if the specified index does not
		///  correspond to a rule in the media rule list.
		///   NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
		///  readonly.
		///      </remarks>		<short>    Used to delete a rule from the media block.</short>
		public void DeleteRule(ulong index) {
			interceptor.Invoke("deleteRule$", "deleteRule(unsigned long)", typeof(void), typeof(ulong), index);
		}
		~CSSMediaRule() {
			interceptor.Invoke("~CSSMediaRule", "~CSSMediaRule()", typeof(void));
		}
		public new void Dispose() {
			interceptor.Invoke("~CSSMediaRule", "~CSSMediaRule()", typeof(void));
		}
	}
}
