//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QMetaEnum")]
    public class QMetaEnum : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QMetaEnum(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QMetaEnum), this);
        }
        public QMetaEnum() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMetaEnum", "QMetaEnum()", typeof(void));
        }
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        public bool IsFlag() {
            return (bool) interceptor.Invoke("isFlag", "isFlag() const", typeof(bool));
        }
        public int KeyCount() {
            return (int) interceptor.Invoke("keyCount", "keyCount() const", typeof(int));
        }
        public string Key(int index) {
            return (string) interceptor.Invoke("key$", "key(int) const", typeof(string), typeof(int), index);
        }
        public int Value(int index) {
            return (int) interceptor.Invoke("value$", "value(int) const", typeof(int), typeof(int), index);
        }
        public string Scope() {
            return (string) interceptor.Invoke("scope", "scope() const", typeof(string));
        }
        public int KeyToValue(string key) {
            return (int) interceptor.Invoke("keyToValue$", "keyToValue(const char*) const", typeof(int), typeof(string), key);
        }
        public string ValueToKey(int value) {
            return (string) interceptor.Invoke("valueToKey$", "valueToKey(int) const", typeof(string), typeof(int), value);
        }
        public int KeysToValue(string keys) {
            return (int) interceptor.Invoke("keysToValue$", "keysToValue(const char*) const", typeof(int), typeof(string), keys);
        }
        public QByteArray ValueToKeys(int value) {
            return (QByteArray) interceptor.Invoke("valueToKeys$", "valueToKeys(int) const", typeof(QByteArray), typeof(int), value);
        }
        public QMetaObject EnclosingMetaObject() {
            return (QMetaObject) interceptor.Invoke("enclosingMetaObject", "enclosingMetaObject() const", typeof(QMetaObject));
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        ~QMetaEnum() {
            interceptor.Invoke("~QMetaEnum", "~QMetaEnum()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QMetaEnum", "~QMetaEnum()", typeof(void));
        }
    }
}
