//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QScriptValue")]
    public class QScriptValue : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QScriptValue(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QScriptValue), this);
        }
        public enum ResolveFlag {
            ResolveLocal = 0x00,
            ResolvePrototype = 0x01,
            ResolveScope = 0x02,
            ResolveFull = ResolvePrototype|ResolveScope,
        }
        public enum PropertyFlag : uint {
            ReadOnly = 0x00000001,
            Undeletable = 0x00000002,
            SkipInEnumeration = 0x00000004,
            PropertyGetter = 0x00000008,
            PropertySetter = 0x00000010,
            QObjectMember = 0x00000020,
            KeepExistingFlags = 0x00000800,
            UserRange = 0xff000000,
        }
        public enum SpecialValue {
            NullValue = 0,
            UndefinedValue = 1,
        }
        public QScriptValue() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue", "QScriptValue()", typeof(void));
        }
        public QScriptValue(QScriptValue other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#", "QScriptValue(const QScriptValue&)", typeof(void), typeof(QScriptValue), other);
        }
        public QScriptValue(QScriptEngine engine, QScriptValue.SpecialValue val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, QScriptValue::SpecialValue)", typeof(void), typeof(QScriptEngine), engine, typeof(QScriptValue.SpecialValue), val);
        }
        public QScriptValue(QScriptEngine engine, bool val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, bool)", typeof(void), typeof(QScriptEngine), engine, typeof(bool), val);
        }
        public QScriptValue(QScriptEngine engine, int val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, int)", typeof(void), typeof(QScriptEngine), engine, typeof(int), val);
        }
        public QScriptValue(QScriptEngine engine, uint val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, uint)", typeof(void), typeof(QScriptEngine), engine, typeof(uint), val);
        }
        public QScriptValue(QScriptEngine engine, double val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, double)", typeof(void), typeof(QScriptEngine), engine, typeof(double), val);
        }
        public QScriptValue(QScriptEngine engine, string val) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptValue#$", "QScriptValue(QScriptEngine*, const QString&)", typeof(void), typeof(QScriptEngine), engine, typeof(string), val);
        }
        public QScriptEngine Engine() {
            return (QScriptEngine) interceptor.Invoke("engine", "engine() const", typeof(QScriptEngine));
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        public bool IsBoolean() {
            return (bool) interceptor.Invoke("isBoolean", "isBoolean() const", typeof(bool));
        }
        public bool IsNumber() {
            return (bool) interceptor.Invoke("isNumber", "isNumber() const", typeof(bool));
        }
        public bool IsFunction() {
            return (bool) interceptor.Invoke("isFunction", "isFunction() const", typeof(bool));
        }
        public bool IsNull() {
            return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
        }
        public bool IsString() {
            return (bool) interceptor.Invoke("isString", "isString() const", typeof(bool));
        }
        public bool IsUndefined() {
            return (bool) interceptor.Invoke("isUndefined", "isUndefined() const", typeof(bool));
        }
        public bool IsVariant() {
            return (bool) interceptor.Invoke("isVariant", "isVariant() const", typeof(bool));
        }
        public bool IsQObject() {
            return (bool) interceptor.Invoke("isQObject", "isQObject() const", typeof(bool));
        }
        public bool IsQMetaObject() {
            return (bool) interceptor.Invoke("isQMetaObject", "isQMetaObject() const", typeof(bool));
        }
        public bool IsObject() {
            return (bool) interceptor.Invoke("isObject", "isObject() const", typeof(bool));
        }
        public bool IsDate() {
            return (bool) interceptor.Invoke("isDate", "isDate() const", typeof(bool));
        }
        public bool IsRegExp() {
            return (bool) interceptor.Invoke("isRegExp", "isRegExp() const", typeof(bool));
        }
        public bool IsArray() {
            return (bool) interceptor.Invoke("isArray", "isArray() const", typeof(bool));
        }
        public bool IsError() {
            return (bool) interceptor.Invoke("isError", "isError() const", typeof(bool));
        }
        public new string ToString() {
            return (string) interceptor.Invoke("toString", "toString() const", typeof(string));
        }
        public double ToNumber() {
            return (double) interceptor.Invoke("toNumber", "toNumber() const", typeof(double));
        }
        public bool ToBoolean() {
            return (bool) interceptor.Invoke("toBoolean", "toBoolean() const", typeof(bool));
        }
        public double ToInteger() {
            return (double) interceptor.Invoke("toInteger", "toInteger() const", typeof(double));
        }
        public int ToInt32() {
            return (int) interceptor.Invoke("toInt32", "toInt32() const", typeof(int));
        }
        public uint ToUInt32() {
            return (uint) interceptor.Invoke("toUInt32", "toUInt32() const", typeof(uint));
        }
        public ushort ToUInt16() {
            return (ushort) interceptor.Invoke("toUInt16", "toUInt16() const", typeof(ushort));
        }
        public QVariant ToVariant() {
            return (QVariant) interceptor.Invoke("toVariant", "toVariant() const", typeof(QVariant));
        }
        public QObject ToQObject() {
            return (QObject) interceptor.Invoke("toQObject", "toQObject() const", typeof(QObject));
        }
        public QMetaObject ToQMetaObject() {
            return (QMetaObject) interceptor.Invoke("toQMetaObject", "toQMetaObject() const", typeof(QMetaObject));
        }
        public QScriptValue ToObject() {
            return (QScriptValue) interceptor.Invoke("toObject", "toObject() const", typeof(QScriptValue));
        }
        public QDateTime ToDateTime() {
            return (QDateTime) interceptor.Invoke("toDateTime", "toDateTime() const", typeof(QDateTime));
        }
        public QRegExp ToRegExp() {
            return (QRegExp) interceptor.Invoke("toRegExp", "toRegExp() const", typeof(QRegExp));
        }
        public bool InstanceOf(QScriptValue other) {
            return (bool) interceptor.Invoke("instanceOf#", "instanceOf(const QScriptValue&) const", typeof(bool), typeof(QScriptValue), other);
        }
        public bool LessThan(QScriptValue other) {
            return (bool) interceptor.Invoke("lessThan#", "lessThan(const QScriptValue&) const", typeof(bool), typeof(QScriptValue), other);
        }
        public bool Equals(QScriptValue other) {
            return (bool) interceptor.Invoke("equals#", "equals(const QScriptValue&) const", typeof(bool), typeof(QScriptValue), other);
        }
        public bool StrictlyEquals(QScriptValue other) {
            return (bool) interceptor.Invoke("strictlyEquals#", "strictlyEquals(const QScriptValue&) const", typeof(bool), typeof(QScriptValue), other);
        }
        public QScriptValue Prototype() {
            return (QScriptValue) interceptor.Invoke("prototype", "prototype() const", typeof(QScriptValue));
        }
        public void SetPrototype(QScriptValue prototype) {
            interceptor.Invoke("setPrototype#", "setPrototype(const QScriptValue&)", typeof(void), typeof(QScriptValue), prototype);
        }
        public QScriptValue Scope() {
            return (QScriptValue) interceptor.Invoke("scope", "scope() const", typeof(QScriptValue));
        }
        public void SetScope(QScriptValue scope) {
            interceptor.Invoke("setScope#", "setScope(const QScriptValue&)", typeof(void), typeof(QScriptValue), scope);
        }
        public QScriptValue Property(string name, uint mode) {
            return (QScriptValue) interceptor.Invoke("property$$", "property(const QString&, const QScriptValue::ResolveFlags&) const", typeof(QScriptValue), typeof(string), name, typeof(uint), mode);
        }
        public QScriptValue Property(string name) {
            return (QScriptValue) interceptor.Invoke("property$", "property(const QString&) const", typeof(QScriptValue), typeof(string), name);
        }
        public void SetProperty(string name, QScriptValue value, uint flags) {
            interceptor.Invoke("setProperty$#$", "setProperty(const QString&, const QScriptValue&, const QScriptValue::PropertyFlags&)", typeof(void), typeof(string), name, typeof(QScriptValue), value, typeof(uint), flags);
        }
        public void SetProperty(string name, QScriptValue value) {
            interceptor.Invoke("setProperty$#", "setProperty(const QString&, const QScriptValue&)", typeof(void), typeof(string), name, typeof(QScriptValue), value);
        }
        public QScriptValue Property(uint arrayIndex, uint mode) {
            return (QScriptValue) interceptor.Invoke("property$$", "property(unsigned int, const QScriptValue::ResolveFlags&) const", typeof(QScriptValue), typeof(uint), arrayIndex, typeof(uint), mode);
        }
        public QScriptValue Property(uint arrayIndex) {
            return (QScriptValue) interceptor.Invoke("property$", "property(unsigned int) const", typeof(QScriptValue), typeof(uint), arrayIndex);
        }
        public void SetProperty(uint arrayIndex, QScriptValue value, uint flags) {
            interceptor.Invoke("setProperty$#$", "setProperty(unsigned int, const QScriptValue&, const QScriptValue::PropertyFlags&)", typeof(void), typeof(uint), arrayIndex, typeof(QScriptValue), value, typeof(uint), flags);
        }
        public void SetProperty(uint arrayIndex, QScriptValue value) {
            interceptor.Invoke("setProperty$#", "setProperty(unsigned int, const QScriptValue&)", typeof(void), typeof(uint), arrayIndex, typeof(QScriptValue), value);
        }
        public QScriptValue Property(QScriptString name, uint mode) {
            return (QScriptValue) interceptor.Invoke("property#$", "property(const QScriptString&, const QScriptValue::ResolveFlags&) const", typeof(QScriptValue), typeof(QScriptString), name, typeof(uint), mode);
        }
        public QScriptValue Property(QScriptString name) {
            return (QScriptValue) interceptor.Invoke("property#", "property(const QScriptString&) const", typeof(QScriptValue), typeof(QScriptString), name);
        }
        public void SetProperty(QScriptString name, QScriptValue value, uint flags) {
            interceptor.Invoke("setProperty##$", "setProperty(const QScriptString&, const QScriptValue&, const QScriptValue::PropertyFlags&)", typeof(void), typeof(QScriptString), name, typeof(QScriptValue), value, typeof(uint), flags);
        }
        public void SetProperty(QScriptString name, QScriptValue value) {
            interceptor.Invoke("setProperty##", "setProperty(const QScriptString&, const QScriptValue&)", typeof(void), typeof(QScriptString), name, typeof(QScriptValue), value);
        }
        public uint PropertyFlags(string name, uint mode) {
            return (uint) interceptor.Invoke("propertyFlags$$", "propertyFlags(const QString&, const QScriptValue::ResolveFlags&) const", typeof(uint), typeof(string), name, typeof(uint), mode);
        }
        public uint PropertyFlags(string name) {
            return (uint) interceptor.Invoke("propertyFlags$", "propertyFlags(const QString&) const", typeof(uint), typeof(string), name);
        }
        public uint PropertyFlags(QScriptString name, uint mode) {
            return (uint) interceptor.Invoke("propertyFlags#$", "propertyFlags(const QScriptString&, const QScriptValue::ResolveFlags&) const", typeof(uint), typeof(QScriptString), name, typeof(uint), mode);
        }
        public uint PropertyFlags(QScriptString name) {
            return (uint) interceptor.Invoke("propertyFlags#", "propertyFlags(const QScriptString&) const", typeof(uint), typeof(QScriptString), name);
        }
        public QScriptValue Call(QScriptValue thisObject, List<QScriptValue> args) {
            return (QScriptValue) interceptor.Invoke("call#?", "call(const QScriptValue&, const QList<QScriptValue>&)", typeof(QScriptValue), typeof(QScriptValue), thisObject, typeof(List<QScriptValue>), args);
        }
        public QScriptValue Call(QScriptValue thisObject) {
            return (QScriptValue) interceptor.Invoke("call#", "call(const QScriptValue&)", typeof(QScriptValue), typeof(QScriptValue), thisObject);
        }
        public QScriptValue Call() {
            return (QScriptValue) interceptor.Invoke("call", "call()", typeof(QScriptValue));
        }
        public QScriptValue Call(QScriptValue thisObject, QScriptValue arguments) {
            return (QScriptValue) interceptor.Invoke("call##", "call(const QScriptValue&, const QScriptValue&)", typeof(QScriptValue), typeof(QScriptValue), thisObject, typeof(QScriptValue), arguments);
        }
        public QScriptValue Construct(List<QScriptValue> args) {
            return (QScriptValue) interceptor.Invoke("construct?", "construct(const QList<QScriptValue>&)", typeof(QScriptValue), typeof(List<QScriptValue>), args);
        }
        public QScriptValue Construct() {
            return (QScriptValue) interceptor.Invoke("construct", "construct()", typeof(QScriptValue));
        }
        public QScriptValue Construct(QScriptValue arguments) {
            return (QScriptValue) interceptor.Invoke("construct#", "construct(const QScriptValue&)", typeof(QScriptValue), typeof(QScriptValue), arguments);
        }
        public QScriptValue Data() {
            return (QScriptValue) interceptor.Invoke("data", "data() const", typeof(QScriptValue));
        }
        public void SetData(QScriptValue data) {
            interceptor.Invoke("setData#", "setData(const QScriptValue&)", typeof(void), typeof(QScriptValue), data);
        }
        public QScriptClass ScriptClass() {
            return (QScriptClass) interceptor.Invoke("scriptClass", "scriptClass() const", typeof(QScriptClass));
        }
        public void SetScriptClass(QScriptClass scriptClass) {
            interceptor.Invoke("setScriptClass#", "setScriptClass(QScriptClass*)", typeof(void), typeof(QScriptClass), scriptClass);
        }
        public long ObjectId() {
            return (long) interceptor.Invoke("objectId", "objectId() const", typeof(long));
        }
        ~QScriptValue() {
            interceptor.Invoke("~QScriptValue", "~QScriptValue()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QScriptValue", "~QScriptValue()", typeof(void));
        }
    }
}
