//Auto-generated by kalyptus. DO NOT EDIT.
namespace Plasma {
    using Plasma;
    using System;
    using Kimono;
    using Qyoto;
    /// <remarks>
    ///  @class ScriptEngine plasma/scripting/scriptengine.h <Plasma/Scripting/ScriptEngine>
    ///  All ScriptEngines should export as consistent an interface as possible
    ///  so that the learning curve is limited. In particular, the following
    ///  API should be made available in the script environment:
    ///  TODO: define the actual scripting APIas ...
    ///  PlasmaApplet - the applet of this plasmoid
    ///  LoadUserInterface(String uiFile) - loads and returns a given UI file
    ///  LoadImage - loads an image resource out of the plasmoid's package
    ///  PlasmaSvg - creates and returns an Svg file
    /// </remarks>        <short> The base class for scripting interfaces to be used in loading         plasmoids of a given language. </short>
    [SmokeClass("Plasma::ScriptEngine")]
    public class ScriptEngine : QObject, IDisposable {
        protected ScriptEngine(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(ScriptEngine), this);
        }
        /// <remarks>
        ///  Called when it is safe to initialize the internal state of the engine
        ///      </remarks>        <short>    Called when it is safe to initialize the internal state of the engine      </short>
        [SmokeMethod("init()")]
        public virtual bool Init() {
            return (bool) interceptor.Invoke("init", "init()", typeof(bool));
        }
        public ScriptEngine(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ScriptEngine#", "ScriptEngine(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public ScriptEngine() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ScriptEngine", "ScriptEngine()", typeof(void));
        }
        /// <remarks>
        /// </remarks>        <return> absolute path to the main script file for this plasmoid
        ///      </return>
        ///         <short>   </short>
        [SmokeMethod("mainScript() const")]
        protected virtual string MainScript() {
            return (string) interceptor.Invoke("mainScript", "mainScript() const", typeof(string));
        }
        /// <remarks>
        /// </remarks>        <return> the Package associated with this plasmoid which can
        ///          be used to request resources, such as images and
        ///          interface files.
        ///      </return>
        ///         <short>   </short>
        [SmokeMethod("package() const")]
        protected virtual Plasma.Package Package() {
            return (Plasma.Package) interceptor.Invoke("package", "package() const", typeof(Plasma.Package));
        }
        ~ScriptEngine() {
            interceptor.Invoke("~ScriptEngine", "~ScriptEngine()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~ScriptEngine", "~ScriptEngine()", typeof(void));
        }
        protected new IScriptEngineSignals Emit {
            get { return (IScriptEngineSignals) Q_EMIT; }
        }
    }

    public interface IScriptEngineSignals : IQObjectSignals {
    }
}
