//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  The <code>CSSStyleDeclaration</code> interface represents a
	///  single <a href="http://www.w3.org/TR/REC-CSS2/syndata.html#block">
	///  CSS declaration block </a> . This interface may be used to
	///  determine the style properties currently set in a block or to set
	///  style properties explicitly within the block.
	///   While an implementation may not recognize all CSS properties
	///  within a CSS declaration block, it is expected to provide access to
	///  all specified properties through the <code>CSSStyleDeclaration</code>
	///  interface. Furthermore, implementations that support a
	///  specific level of CSS should correctly handle <a
	///  href="http://www.w3.org/TR/REC-CSS2/about.html#shorthand"> CSS
	///  shorthand </a> properties for that level. For a further discussion
	///  of shorthand properties, see the <code>CSS2Properties</code>
	///  interface.
	///  </remarks>		<short>    The <code>CSSStyleDeclaration</code> interface represents a  single <a href="http://www.</short>
	[SmokeClass("DOM::CSSStyleDeclaration")]
	public class CSSStyleDeclaration : Object, IDisposable {
		protected SmokeInvocation interceptor = null;
		private IntPtr smokeObject;
		protected CSSStyleDeclaration(Type dummy) {}
		protected void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(CSSStyleDeclaration), this);
		}
		// DOM::CSSStyleDeclaration* CSSStyleDeclaration(DOM::CSSStyleDeclarationImpl* arg1); >>>> NOT CONVERTED
		public CSSStyleDeclaration() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSStyleDeclaration", "CSSStyleDeclaration()", typeof(void));
		}
		public CSSStyleDeclaration(DOM.CSSStyleDeclaration other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("CSSStyleDeclaration#", "CSSStyleDeclaration(const DOM::CSSStyleDeclaration&)", typeof(void), typeof(DOM.CSSStyleDeclaration), other);
		}
		/// <remarks>
		///  The parsable textual representation of the declaration block
		///  (including the surrounding curly braces). Setting this
		///  attribute will result in the parsing of the new value and
		///  resetting of the properties in the declaration block.
		///      </remarks>		<short>    The parsable textual representation of the declaration block  (including the surrounding curly braces).</short>
		public DOM.DOMString CssText() {
			return (DOM.DOMString) interceptor.Invoke("cssText", "cssText() const", typeof(DOM.DOMString));
		}
		/// <remarks>
		///  see cssText
		///      </remarks>		<short>    see cssText </short>
		public void SetCssText(DOM.DOMString arg1) {
			interceptor.Invoke("setCssText#", "setCssText(const DOM::DOMString&)", typeof(void), typeof(DOM.DOMString), arg1);
		}
		/// <remarks>
		///  The number of properties that have been explicitly set in this
		///  declaration block.
		///      </remarks>		<short>    The number of properties that have been explicitly set in this  declaration block.</short>
		public ulong Length() {
			return (ulong) interceptor.Invoke("length", "length() const", typeof(ulong));
		}
		/// <remarks>
		///  The CSS rule that contains this declaration block.
		///      </remarks>		<short>    The CSS rule that contains this declaration block.</short>
		public DOM.CSSRule ParentRule() {
			return (DOM.CSSRule) interceptor.Invoke("parentRule", "parentRule() const", typeof(DOM.CSSRule));
		}
		/// <remarks>
		///  Used to retrieve the value of a CSS property if it has been
		///  explicitly set within this declaration block.
		/// <param> name="propertyName" The name of the CSS property. See the <a
		///  href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property
		///  index </a> .
		/// </param>     </remarks>		<return> Returns the value of the property if it has been
		///  explicitly set for this declaration block. Returns the empty
		///  string if the property has not been set.
		/// </return>
		/// 		<short>    Used to retrieve the value of a CSS property if it has been  explicitly set within this declaration block.</short>
		public DOM.DOMString GetPropertyValue(DOM.DOMString propertyName) {
			return (DOM.DOMString) interceptor.Invoke("getPropertyValue#", "getPropertyValue(const DOM::DOMString&) const", typeof(DOM.DOMString), typeof(DOM.DOMString), propertyName);
		}
		/// <remarks>
		///  Used to retrieve the object representation of the value of a
		///  CSS property if it has been explicitly set within this
		///  declaration block. This method returns null if the property is
		///  a <a href="http://www.w3.org/TR/REC-CSS2/about.html#shorthand">
		///  shorthand </a> property. Shorthand property values can only be
		///  accessed and modified as strings, using the
		///  <code>getPropertyValue</code> and <code>setProperty</code>
		///  methods.
		/// <param> name="propertyName" The name of the CSS property. See the <a
		///  href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property
		///  index </a> .
		/// </param>     </remarks>		<return> Returns the value of the property if it has been
		///  explicitly set for this declaration block. Returns the
		///  <code>null</code> if the property has not been set.
		/// </return>
		/// 		<short>    Used to retrieve the object representation of the value of a  CSS property if it has been explicitly set within this  declaration block.</short>
		public DOM.CSSValue GetPropertyCSSValue(DOM.DOMString propertyName) {
			return (DOM.CSSValue) interceptor.Invoke("getPropertyCSSValue#", "getPropertyCSSValue(const DOM::DOMString&) const", typeof(DOM.CSSValue), typeof(DOM.DOMString), propertyName);
		}
		/// <remarks>
		///  Used to remove a CSS property if it has been explicitly set
		///  within this declaration block.
		/// <param> name="propertyName" The name of the CSS property. See the <a
		///  href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property
		///  index </a> .
		/// </param>     </remarks>		<return> Returns the value of the property if it has been
		///  explicitly set for this declaration block. Returns the empty
		///  string if the property has not been set or the property name
		///  does not correspond to a valid CSS2 property.
		/// </return>
		/// 		<short>    Used to remove a CSS property if it has been explicitly set  within this declaration block.</short>
		public DOM.DOMString RemoveProperty(DOM.DOMString propertyName) {
			return (DOM.DOMString) interceptor.Invoke("removeProperty#", "removeProperty(const DOM::DOMString&)", typeof(DOM.DOMString), typeof(DOM.DOMString), propertyName);
		}
		/// <remarks>
		///  Used to retrieve the priority of a CSS property (e.g. the
		///  <code>"important"</code> qualifier) if the property has been
		///  explicitly set in this declaration block.
		/// <param> name="propertyName" The name of the CSS property. See the <a
		///  href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property
		///  index </a> .
		/// </param>     </remarks>		<return> A string representing the priority (e.g.
		///  <code>"important"</code> ) if one exists. The empty string if none
		///  exists.
		/// </return>
		/// 		<short>    Used to retrieve the priority of a CSS property (e.</short>
		public DOM.DOMString GetPropertyPriority(DOM.DOMString propertyName) {
			return (DOM.DOMString) interceptor.Invoke("getPropertyPriority#", "getPropertyPriority(const DOM::DOMString&) const", typeof(DOM.DOMString), typeof(DOM.DOMString), propertyName);
		}
		/// <remarks>
		///  Used to set a property value and priority within this
		///  declaration block.
		/// <param> name="propertyName" The name of the CSS property. See the <a
		///  href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property
		///  index </a> .
		/// </param><param> name="value" The new value of the property.
		/// </param><param> name="priority" The new priority of the property (e.g.
		///  <code>"important"</code> ).
		/// </param>     </remarks>		<short>    Used to set a property value and priority within this  declaration block.</short>
		public void SetProperty(DOM.DOMString propertyName, DOM.DOMString value, DOM.DOMString priority) {
			interceptor.Invoke("setProperty###", "setProperty(const DOM::DOMString&, const DOM::DOMString&, const DOM::DOMString&)", typeof(void), typeof(DOM.DOMString), propertyName, typeof(DOM.DOMString), value, typeof(DOM.DOMString), priority);
		}
		public DOM.DOMString Item(ulong index) {
			return (DOM.DOMString) interceptor.Invoke("item$", "item(unsigned long)", typeof(DOM.DOMString), typeof(ulong), index);
		}
		public bool IsNull() {
			return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
		}
		~CSSStyleDeclaration() {
			interceptor.Invoke("~CSSStyleDeclaration", "~CSSStyleDeclaration()", typeof(void));
		}
		public void Dispose() {
			interceptor.Invoke("~CSSStyleDeclaration", "~CSSStyleDeclaration()", typeof(void));
		}
	}
}
