//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  Proxy to thread message using the Mailthreader agent
    /// </remarks>        <short>    Proxy to thread message using the Mailthreader agent </short>
    [SmokeClass("Akonadi::MessageThreaderProxyModel")]
    public class MessageThreaderProxyModel : QAbstractProxyModel, IDisposable {
        protected MessageThreaderProxyModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(MessageThreaderProxyModel), this);
        }
        /// <remarks>
        ///  Create a new MessageThreaderProxyModel
        /// <param> name="parent" The parent object
        ///      </param></remarks>        <short>    Create a new MessageThreaderProxyModel </short>
        public MessageThreaderProxyModel(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("MessageThreaderProxyModel#", "MessageThreaderProxyModel(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public MessageThreaderProxyModel() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("MessageThreaderProxyModel", "MessageThreaderProxyModel()", typeof(void));
        }
        /// <remarks>
        ///  Reimplemented to actually do the threading.
        ///      </remarks>        <short>    Reimplemented to actually do the threading.</short>
        [SmokeMethod("parent(const QModelIndex&) const")]
        public override QModelIndex Parent(QModelIndex index) {
            return (QModelIndex) interceptor.Invoke("parent#", "parent(const QModelIndex&) const", typeof(QModelIndex), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("rowCount(const QModelIndex&) const")]
        public override int RowCount(QModelIndex index) {
            return (int) interceptor.Invoke("rowCount#", "rowCount(const QModelIndex&) const", typeof(int), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("index(int, int, const QModelIndex&) const")]
        public override QModelIndex Index(int row, int column, QModelIndex parent) {
            return (QModelIndex) interceptor.Invoke("index$$#", "index(int, int, const QModelIndex&) const", typeof(QModelIndex), typeof(int), row, typeof(int), column, typeof(QModelIndex), parent);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("hasChildren(const QModelIndex&) const")]
        public override bool HasChildren(QModelIndex index) {
            return (bool) interceptor.Invoke("hasChildren#", "hasChildren(const QModelIndex&) const", typeof(bool), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        public new QModelIndex CreateIndex(int row, int column, uint internalId) {
            return (QModelIndex) interceptor.Invoke("createIndex$$$", "createIndex(int, int, unsigned int) const", typeof(QModelIndex), typeof(int), row, typeof(int), column, typeof(uint), internalId);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("columnCount(const QModelIndex&) const")]
        public override int ColumnCount(QModelIndex index) {
            return (int) interceptor.Invoke("columnCount#", "columnCount(const QModelIndex&) const", typeof(int), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("mimeTypes() const")]
        public override List<string> MimeTypes() {
            return (List<string>) interceptor.Invoke("mimeTypes", "mimeTypes() const", typeof(List<string>));
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("mimeData(const QList<QModelIndex>&) const")]
        public override QMimeData MimeData(List<QModelIndex> indexes) {
            return (QMimeData) interceptor.Invoke("mimeData?", "mimeData(const QList<QModelIndex>&) const", typeof(QMimeData), typeof(List<QModelIndex>), indexes);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("mapFromSource(const QModelIndex&) const")]
        public override QModelIndex MapFromSource(QModelIndex index) {
            return (QModelIndex) interceptor.Invoke("mapFromSource#", "mapFromSource(const QModelIndex&) const", typeof(QModelIndex), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented
        ///      </remarks>        <short>    Reimplemented      </short>
        [SmokeMethod("mapToSource(const QModelIndex&) const")]
        public override QModelIndex MapToSource(QModelIndex index) {
            return (QModelIndex) interceptor.Invoke("mapToSource#", "mapToSource(const QModelIndex&) const", typeof(QModelIndex), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Set the source model.
        /// <param> name="sourceMessageModel" the source model.
        ///  Be careful, sourceMessageModel <b>has to be</b> a MessageModel.
        ///      </param></remarks>        <short>    Set the source model.</short>
        [SmokeMethod("setSourceModel(QAbstractItemModel*)")]
        public override void SetSourceModel(QAbstractItemModel sourceMessageModel) {
            interceptor.Invoke("setSourceModel#", "setSourceModel(QAbstractItemModel*)", typeof(void), typeof(QAbstractItemModel), sourceMessageModel);
        }
        ~MessageThreaderProxyModel() {
            interceptor.Invoke("~MessageThreaderProxyModel", "~MessageThreaderProxyModel()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~MessageThreaderProxyModel", "~MessageThreaderProxyModel()", typeof(void));
        }
        protected new IMessageThreaderProxyModelSignals Emit {
            get { return (IMessageThreaderProxyModelSignals) Q_EMIT; }
        }
    }

    public interface IMessageThreaderProxyModelSignals : IQAbstractProxyModelSignals {
    }
}
