//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQScriptEngineSignals"></see> for signals emitted by QScriptEngine
    /// </remarks>
    [SmokeClass("QScriptEngine")]
    public class QScriptEngine : QObject, IDisposable {
        protected QScriptEngine(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QScriptEngine), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QScriptEngine() {
            staticInterceptor = new SmokeInvocation(typeof(QScriptEngine), null);
        }
        public enum ValueOwnership {
            QtOwnership = 0,
            ScriptOwnership = 1,
            AutoOwnership = 2,
        }
        public enum QObjectWrapOption {
            ExcludeChildObjects = 0x0001,
            ExcludeSuperClassMethods = 0x0002,
            ExcludeSuperClassProperties = 0x0004,
            SkipMethodsInEnumeration = 0x0008,
            AutoCreateDynamicProperties = 0x0100,
            PreferExistingWrapperObject = 0x0200,
        }
        // QScriptValue newFunction(FunctionSignature arg1,int arg2); >>>> NOT CONVERTED
        // QScriptValue newFunction(FunctionSignature arg1); >>>> NOT CONVERTED
        // QScriptValue newFunction(FunctionSignature arg1,const QScriptValue& arg2,int arg3); >>>> NOT CONVERTED
        // QScriptValue newFunction(FunctionSignature arg1,const QScriptValue& arg2); >>>> NOT CONVERTED
        // QScriptValue newFunction(FunctionWithArgSignature arg1,void* arg2); >>>> NOT CONVERTED
        // QScriptEngine* QScriptEngine(QScriptEnginePrivate& arg1,QObject* arg2); >>>> NOT CONVERTED
        // QScriptEngine* QScriptEngine(QScriptEnginePrivate& arg1); >>>> NOT CONVERTED
        public QScriptEngine() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptEngine", "QScriptEngine()", typeof(void));
        }
        public QScriptEngine(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QScriptEngine#", "QScriptEngine(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QScriptValue GlobalObject() {
            return (QScriptValue) interceptor.Invoke("globalObject", "globalObject() const", typeof(QScriptValue));
        }
        public QScriptContext CurrentContext() {
            return (QScriptContext) interceptor.Invoke("currentContext", "currentContext() const", typeof(QScriptContext));
        }
        public QScriptContext PushContext() {
            return (QScriptContext) interceptor.Invoke("pushContext", "pushContext()", typeof(QScriptContext));
        }
        public void PopContext() {
            interceptor.Invoke("popContext", "popContext()", typeof(void));
        }
        public bool CanEvaluate(string program) {
            return (bool) interceptor.Invoke("canEvaluate$", "canEvaluate(const QString&) const", typeof(bool), typeof(string), program);
        }
        public QScriptValue Evaluate(string program, string fileName, int lineNumber) {
            return (QScriptValue) interceptor.Invoke("evaluate$$$", "evaluate(const QString&, const QString&, int)", typeof(QScriptValue), typeof(string), program, typeof(string), fileName, typeof(int), lineNumber);
        }
        public QScriptValue Evaluate(string program, string fileName) {
            return (QScriptValue) interceptor.Invoke("evaluate$$", "evaluate(const QString&, const QString&)", typeof(QScriptValue), typeof(string), program, typeof(string), fileName);
        }
        public QScriptValue Evaluate(string program) {
            return (QScriptValue) interceptor.Invoke("evaluate$", "evaluate(const QString&)", typeof(QScriptValue), typeof(string), program);
        }
        public bool IsEvaluating() {
            return (bool) interceptor.Invoke("isEvaluating", "isEvaluating() const", typeof(bool));
        }
        public void AbortEvaluation(QScriptValue result) {
            interceptor.Invoke("abortEvaluation#", "abortEvaluation(const QScriptValue&)", typeof(void), typeof(QScriptValue), result);
        }
        public void AbortEvaluation() {
            interceptor.Invoke("abortEvaluation", "abortEvaluation()", typeof(void));
        }
        public bool HasUncaughtException() {
            return (bool) interceptor.Invoke("hasUncaughtException", "hasUncaughtException() const", typeof(bool));
        }
        public QScriptValue UncaughtException() {
            return (QScriptValue) interceptor.Invoke("uncaughtException", "uncaughtException() const", typeof(QScriptValue));
        }
        public int UncaughtExceptionLineNumber() {
            return (int) interceptor.Invoke("uncaughtExceptionLineNumber", "uncaughtExceptionLineNumber() const", typeof(int));
        }
        public List<string> UncaughtExceptionBacktrace() {
            return (List<string>) interceptor.Invoke("uncaughtExceptionBacktrace", "uncaughtExceptionBacktrace() const", typeof(List<string>));
        }
        public void ClearExceptions() {
            interceptor.Invoke("clearExceptions", "clearExceptions()", typeof(void));
        }
        public QScriptValue NullValue() {
            return (QScriptValue) interceptor.Invoke("nullValue", "nullValue()", typeof(QScriptValue));
        }
        public QScriptValue UndefinedValue() {
            return (QScriptValue) interceptor.Invoke("undefinedValue", "undefinedValue()", typeof(QScriptValue));
        }
        public QScriptValue NewVariant(QVariant value) {
            return (QScriptValue) interceptor.Invoke("newVariant#", "newVariant(const QVariant&)", typeof(QScriptValue), typeof(QVariant), value);
        }
        public QScriptValue NewVariant(QScriptValue arg1, QVariant value) {
            return (QScriptValue) interceptor.Invoke("newVariant##", "newVariant(const QScriptValue&, const QVariant&)", typeof(QScriptValue), typeof(QScriptValue), arg1, typeof(QVariant), value);
        }
        public QScriptValue NewRegExp(QRegExp regexp) {
            return (QScriptValue) interceptor.Invoke("newRegExp#", "newRegExp(const QRegExp&)", typeof(QScriptValue), typeof(QRegExp), regexp);
        }
        public QScriptValue NewObject() {
            return (QScriptValue) interceptor.Invoke("newObject", "newObject()", typeof(QScriptValue));
        }
        public QScriptValue NewObject(QScriptClass scriptClass, QScriptValue data) {
            return (QScriptValue) interceptor.Invoke("newObject##", "newObject(QScriptClass*, const QScriptValue&)", typeof(QScriptValue), typeof(QScriptClass), scriptClass, typeof(QScriptValue), data);
        }
        public QScriptValue NewObject(QScriptClass scriptClass) {
            return (QScriptValue) interceptor.Invoke("newObject#", "newObject(QScriptClass*)", typeof(QScriptValue), typeof(QScriptClass), scriptClass);
        }
        public QScriptValue NewArray(uint length) {
            return (QScriptValue) interceptor.Invoke("newArray$", "newArray(uint)", typeof(QScriptValue), typeof(uint), length);
        }
        public QScriptValue NewArray() {
            return (QScriptValue) interceptor.Invoke("newArray", "newArray()", typeof(QScriptValue));
        }
        public QScriptValue NewRegExp(string pattern, string flags) {
            return (QScriptValue) interceptor.Invoke("newRegExp$$", "newRegExp(const QString&, const QString&)", typeof(QScriptValue), typeof(string), pattern, typeof(string), flags);
        }
        public QScriptValue NewDate(double value) {
            return (QScriptValue) interceptor.Invoke("newDate$", "newDate(double)", typeof(QScriptValue), typeof(double), value);
        }
        public QScriptValue NewDate(QDateTime value) {
            return (QScriptValue) interceptor.Invoke("newDate#", "newDate(const QDateTime&)", typeof(QScriptValue), typeof(QDateTime), value);
        }
        public QScriptValue NewActivationObject() {
            return (QScriptValue) interceptor.Invoke("newActivationObject", "newActivationObject()", typeof(QScriptValue));
        }
        public QScriptValue NewQObject(QObject arg1, QScriptEngine.ValueOwnership ownership, uint options) {
            return (QScriptValue) interceptor.Invoke("newQObject#$$", "newQObject(QObject*, QScriptEngine::ValueOwnership, const QScriptEngine::QObjectWrapOptions&)", typeof(QScriptValue), typeof(QObject), arg1, typeof(QScriptEngine.ValueOwnership), ownership, typeof(uint), options);
        }
        public QScriptValue NewQObject(QObject arg1, QScriptEngine.ValueOwnership ownership) {
            return (QScriptValue) interceptor.Invoke("newQObject#$", "newQObject(QObject*, QScriptEngine::ValueOwnership)", typeof(QScriptValue), typeof(QObject), arg1, typeof(QScriptEngine.ValueOwnership), ownership);
        }
        public QScriptValue NewQObject(QObject arg1) {
            return (QScriptValue) interceptor.Invoke("newQObject#", "newQObject(QObject*)", typeof(QScriptValue), typeof(QObject), arg1);
        }
        public QScriptValue NewQObject(QScriptValue scriptObject, QObject qtObject, QScriptEngine.ValueOwnership ownership, uint options) {
            return (QScriptValue) interceptor.Invoke("newQObject##$$", "newQObject(const QScriptValue&, QObject*, QScriptEngine::ValueOwnership, const QScriptEngine::QObjectWrapOptions&)", typeof(QScriptValue), typeof(QScriptValue), scriptObject, typeof(QObject), qtObject, typeof(QScriptEngine.ValueOwnership), ownership, typeof(uint), options);
        }
        public QScriptValue NewQObject(QScriptValue scriptObject, QObject qtObject, QScriptEngine.ValueOwnership ownership) {
            return (QScriptValue) interceptor.Invoke("newQObject##$", "newQObject(const QScriptValue&, QObject*, QScriptEngine::ValueOwnership)", typeof(QScriptValue), typeof(QScriptValue), scriptObject, typeof(QObject), qtObject, typeof(QScriptEngine.ValueOwnership), ownership);
        }
        public QScriptValue NewQObject(QScriptValue scriptObject, QObject qtObject) {
            return (QScriptValue) interceptor.Invoke("newQObject##", "newQObject(const QScriptValue&, QObject*)", typeof(QScriptValue), typeof(QScriptValue), scriptObject, typeof(QObject), qtObject);
        }
        public QScriptValue NewQMetaObject(QMetaObject metaObject, QScriptValue ctor) {
            return (QScriptValue) interceptor.Invoke("newQMetaObject##", "newQMetaObject(const QMetaObject*, const QScriptValue&)", typeof(QScriptValue), typeof(QMetaObject), metaObject, typeof(QScriptValue), ctor);
        }
        public QScriptValue NewQMetaObject(QMetaObject metaObject) {
            return (QScriptValue) interceptor.Invoke("newQMetaObject#", "newQMetaObject(const QMetaObject*)", typeof(QScriptValue), typeof(QMetaObject), metaObject);
        }
        public QScriptValue DefaultPrototype(int metaTypeId) {
            return (QScriptValue) interceptor.Invoke("defaultPrototype$", "defaultPrototype(int) const", typeof(QScriptValue), typeof(int), metaTypeId);
        }
        public void SetDefaultPrototype(int metaTypeId, QScriptValue prototype) {
            interceptor.Invoke("setDefaultPrototype$#", "setDefaultPrototype(int, const QScriptValue&)", typeof(void), typeof(int), metaTypeId, typeof(QScriptValue), prototype);
        }
        public QScriptValue ImportExtension(string extension) {
            return (QScriptValue) interceptor.Invoke("importExtension$", "importExtension(const QString&)", typeof(QScriptValue), typeof(string), extension);
        }
        public List<string> AvailableExtensions() {
            return (List<string>) interceptor.Invoke("availableExtensions", "availableExtensions() const", typeof(List<string>));
        }
        public List<string> ImportedExtensions() {
            return (List<string>) interceptor.Invoke("importedExtensions", "importedExtensions() const", typeof(List<string>));
        }
        public void CollectGarbage() {
            interceptor.Invoke("collectGarbage", "collectGarbage()", typeof(void));
        }
        public void SetProcessEventsInterval(int interval) {
            interceptor.Invoke("setProcessEventsInterval$", "setProcessEventsInterval(int)", typeof(void), typeof(int), interval);
        }
        public int ProcessEventsInterval() {
            return (int) interceptor.Invoke("processEventsInterval", "processEventsInterval() const", typeof(int));
        }
        public void SetAgent(QScriptEngineAgent agent) {
            interceptor.Invoke("setAgent#", "setAgent(QScriptEngineAgent*)", typeof(void), typeof(QScriptEngineAgent), agent);
        }
        public QScriptEngineAgent Agent() {
            return (QScriptEngineAgent) interceptor.Invoke("agent", "agent() const", typeof(QScriptEngineAgent));
        }
        public QScriptString ToStringHandle(string str) {
            return (QScriptString) interceptor.Invoke("toStringHandle$", "toStringHandle(const QString&)", typeof(QScriptString), typeof(string), str);
        }
        public QScriptValue ObjectById(long id) {
            return (QScriptValue) interceptor.Invoke("objectById$", "objectById(qint64) const", typeof(QScriptValue), typeof(long), id);
        }
        ~QScriptEngine() {
            interceptor.Invoke("~QScriptEngine", "~QScriptEngine()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QScriptEngine", "~QScriptEngine()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        protected new IQScriptEngineSignals Emit {
            get { return (IQScriptEngineSignals) Q_EMIT; }
        }
    }

    public interface IQScriptEngineSignals : IQObjectSignals {
        [Q_SIGNAL("void signalHandlerException(QScriptValue)")]
        void SignalHandlerException(QScriptValue exception);
    }
}
