import QtQuick.tooling 1.2

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
// 'qmlplugindump -nonrelocatable Enginio 1.0'

Module {
    dependencies: []
    Component {
        name: "Enginio"
        exports: ["Enginio/Enginio 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "AuthenticationState"
            values: {
                "NotAuthenticated": 0,
                "Authenticating": 1,
                "Authenticated": 2,
                "AuthenticationFailure": 3
            }
        }
        Enum {
            name: "Operation"
            values: {
                "ObjectOperation": 0,
                "AccessControlOperation": 1,
                "UserOperation": 2,
                "UsergroupOperation": 3,
                "UsergroupMembersOperation": 4,
                "FileOperation": 5,
                "SessionOperation": 6,
                "SearchOperation": 7,
                "FileChunkUploadOperation": 8,
                "FileGetDownloadUrlOperation": 9
            }
        }
        Enum {
            name: "Role"
            values: {
                "InvalidRole": -1,
                "SyncedRole": 257,
                "CreatedAtRole": 258,
                "UpdatedAtRole": 259,
                "IdRole": 260,
                "ObjectTypeRole": 261,
                "JsonObjectRole": 262,
                "CustomPropertyRole": 266
            }
        }
        Enum {
            name: "ErrorType"
            values: {
                "NoError": 0,
                "NetworkError": 1,
                "BackendError": 2
            }
        }
    }
    Component {
        name: "EnginioBaseModel"
        prototype: "QAbstractListModel"
        exports: ["Enginio/EnginioBaseModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "EnginioClientConnection"
        prototype: "QObject"
        exports: ["Enginio/EnginioClientConnection 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "backendId"; type: "QByteArray" }
        Property { name: "serviceUrl"; type: "QUrl" }
        Property { name: "identity"; type: "EnginioIdentity"; isPointer: true }
        Property { name: "authenticationState"; type: "Enginio::AuthenticationState"; isReadonly: true }
        Signal {
            name: "backendIdChanged"
            Parameter { name: "backendId"; type: "QByteArray" }
        }
        Signal {
            name: "serviceUrlChanged"
            Parameter { name: "url"; type: "QUrl" }
        }
        Signal {
            name: "authenticationStateChanged"
            Parameter { name: "state"; type: "Enginio::AuthenticationState" }
        }
        Signal {
            name: "identityChanged"
            Parameter { name: "identity"; type: "EnginioIdentity"; isPointer: true }
        }
    }
    Component {
        name: "EnginioIdentity"
        prototype: "QObject"
        exports: ["Enginio/EnginioIdentity 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal { name: "dataChanged" }
        Signal { name: "aboutToDestroy" }
    }
    Component {
        name: "EnginioOAuth2Authentication"
        prototype: "EnginioIdentity"
        exports: ["Enginio/EnginioOAuth2Authentication 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "user"; type: "string" }
        Property { name: "password"; type: "string" }
        Signal {
            name: "userChanged"
            Parameter { name: "user"; type: "string" }
        }
        Signal {
            name: "passwordChanged"
            Parameter { name: "password"; type: "string" }
        }
        Method {
            name: "setUser"
            Parameter { name: "user"; type: "string" }
        }
        Method {
            name: "setPassword"
            Parameter { name: "password"; type: "string" }
        }
    }
    Component {
        name: "EnginioQmlClient"
        prototype: "EnginioClientConnection"
        exports: ["Enginio/EnginioClient 1.0"]
        exportMetaObjectRevisions: [0]
        Signal {
            name: "sessionAuthenticated"
            Parameter { name: "reply"; type: "QJSValue" }
        }
        Signal {
            name: "sessionAuthenticationError"
            Parameter { name: "reply"; type: "QJSValue" }
        }
        Signal { name: "sessionTerminated" }
        Signal {
            name: "finished"
            Parameter { name: "reply"; type: "QJSValue" }
        }
        Signal {
            name: "error"
            Parameter { name: "reply"; type: "QJSValue" }
        }
        Method {
            name: "fullTextSearch"
            type: "EnginioQmlReply*"
            Parameter { name: "query"; type: "QJSValue" }
        }
        Method {
            name: "query"
            type: "EnginioQmlReply*"
            Parameter { name: "query"; type: "QJSValue" }
            Parameter { name: "operation"; type: "Enginio::Operation" }
        }
        Method {
            name: "query"
            type: "EnginioQmlReply*"
            Parameter { name: "query"; type: "QJSValue" }
        }
        Method {
            name: "create"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
            Parameter { name: "operation"; type: "Enginio::Operation" }
        }
        Method {
            name: "create"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
        }
        Method {
            name: "update"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
            Parameter { name: "operation"; type: "Enginio::Operation" }
        }
        Method {
            name: "update"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
        }
        Method {
            name: "remove"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
            Parameter { name: "operation"; type: "Enginio::Operation" }
        }
        Method {
            name: "remove"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
        }
        Method {
            name: "downloadUrl"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
        }
        Method {
            name: "uploadFile"
            type: "EnginioQmlReply*"
            Parameter { name: "object"; type: "QJSValue" }
            Parameter { name: "url"; type: "QUrl" }
        }
    }
    Component {
        name: "EnginioQmlModel"
        prototype: "EnginioBaseModel"
        exports: ["Enginio/EnginioModel 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "client"; type: "EnginioQmlClient"; isPointer: true }
        Property { name: "query"; type: "QJSValue" }
        Property { name: "operation"; type: "Enginio::Operation" }
        Property { name: "rowCount"; type: "int"; isReadonly: true }
        Signal {
            name: "queryChanged"
            Parameter { name: "query"; type: "QJSValue" }
        }
        Signal {
            name: "clientChanged"
            Parameter { name: "client"; type: "EnginioQmlClient"; isPointer: true }
        }
        Signal {
            name: "operationChanged"
            Parameter { name: "operation"; type: "Enginio::Operation" }
        }
        Method {
            name: "append"
            type: "EnginioQmlReply*"
            Parameter { name: "value"; type: "QJSValue" }
        }
        Method {
            name: "remove"
            type: "EnginioQmlReply*"
            Parameter { name: "row"; type: "int" }
        }
        Method {
            name: "setProperty"
            type: "EnginioQmlReply*"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "role"; type: "string" }
            Parameter { name: "value"; type: "QVariant" }
        }
        Method { name: "reload"; type: "EnginioQmlReply*" }
    }
    Component {
        name: "EnginioQmlReply"
        prototype: "EnginioReplyState"
        exports: ["Enginio/EnginioReply 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "data"; type: "QJSValue"; isReadonly: true }
        Property { name: "isError"; type: "bool"; isReadonly: true }
        Property { name: "isFinished"; type: "bool"; isReadonly: true }
        Signal {
            name: "finished"
            Parameter { name: "reply"; type: "QJSValue" }
        }
    }
    Component {
        name: "EnginioReplyState"
        prototype: "QObject"
        exports: ["Enginio/EnginioReplyState 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "errorType"; type: "Enginio::ErrorType"; isReadonly: true }
        Property { name: "networkError"; type: "QNetworkReply::NetworkError"; isReadonly: true }
        Property { name: "errorString"; type: "string"; isReadonly: true }
        Property { name: "backendStatus"; type: "int"; isReadonly: true }
        Property { name: "requestId"; type: "string"; isReadonly: true }
        Signal { name: "dataChanged" }
        Signal {
            name: "progress"
            Parameter { name: "bytesSent"; type: "qlonglong" }
            Parameter { name: "bytesTotal"; type: "qlonglong" }
        }
        Method { name: "dumpDebugInfo" }
    }
    Component {
        name: "QAbstractItemModel"
        prototype: "QObject"
        Enum {
            name: "LayoutChangeHint"
            values: {
                "NoLayoutChangeHint": 0,
                "VerticalSortHint": 1,
                "HorizontalSortHint": 2
            }
        }
        Signal {
            name: "dataChanged"
            Parameter { name: "topLeft"; type: "QModelIndex" }
            Parameter { name: "bottomRight"; type: "QModelIndex" }
            Parameter { name: "roles"; type: "QVector<int>" }
        }
        Signal {
            name: "dataChanged"
            Parameter { name: "topLeft"; type: "QModelIndex" }
            Parameter { name: "bottomRight"; type: "QModelIndex" }
        }
        Signal {
            name: "headerDataChanged"
            Parameter { name: "orientation"; type: "Qt::Orientation" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "layoutChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
            Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
        }
        Signal {
            name: "layoutChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
        }
        Signal { name: "layoutChanged" }
        Signal {
            name: "layoutAboutToBeChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
            Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
        }
        Signal {
            name: "layoutAboutToBeChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
        }
        Signal { name: "layoutAboutToBeChanged" }
        Signal {
            name: "rowsAboutToBeInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsAboutToBeRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal { name: "modelAboutToBeReset" }
        Signal { name: "modelReset" }
        Signal {
            name: "rowsAboutToBeMoved"
            Parameter { name: "sourceParent"; type: "QModelIndex" }
            Parameter { name: "sourceStart"; type: "int" }
            Parameter { name: "sourceEnd"; type: "int" }
            Parameter { name: "destinationParent"; type: "QModelIndex" }
            Parameter { name: "destinationRow"; type: "int" }
        }
        Signal {
            name: "rowsMoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "start"; type: "int" }
            Parameter { name: "end"; type: "int" }
            Parameter { name: "destination"; type: "QModelIndex" }
            Parameter { name: "row"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeMoved"
            Parameter { name: "sourceParent"; type: "QModelIndex" }
            Parameter { name: "sourceStart"; type: "int" }
            Parameter { name: "sourceEnd"; type: "int" }
            Parameter { name: "destinationParent"; type: "QModelIndex" }
            Parameter { name: "destinationColumn"; type: "int" }
        }
        Signal {
            name: "columnsMoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "start"; type: "int" }
            Parameter { name: "end"; type: "int" }
            Parameter { name: "destination"; type: "QModelIndex" }
            Parameter { name: "column"; type: "int" }
        }
        Method { name: "submit"; type: "bool" }
        Method { name: "revert" }
        Method {
            name: "hasIndex"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "hasIndex"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "index"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "index"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "parent"
            type: "QModelIndex"
            Parameter { name: "child"; type: "QModelIndex" }
        }
        Method {
            name: "sibling"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "idx"; type: "QModelIndex" }
        }
        Method {
            name: "rowCount"
            type: "int"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "rowCount"; type: "int" }
        Method {
            name: "columnCount"
            type: "int"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "columnCount"; type: "int" }
        Method {
            name: "hasChildren"
            type: "bool"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "hasChildren"; type: "bool" }
        Method {
            name: "data"
            type: "QVariant"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "data"
            type: "QVariant"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "setData"
            type: "bool"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "setData"
            type: "bool"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "value"; type: "QVariant" }
        }
        Method {
            name: "headerData"
            type: "QVariant"
            Parameter { name: "section"; type: "int" }
            Parameter { name: "orientation"; type: "Qt::Orientation" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "headerData"
            type: "QVariant"
            Parameter { name: "section"; type: "int" }
            Parameter { name: "orientation"; type: "Qt::Orientation" }
        }
        Method {
            name: "fetchMore"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "canFetchMore"
            type: "bool"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "flags"
            type: "Qt::ItemFlags"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "hits"; type: "int" }
            Parameter { name: "flags"; type: "Qt::MatchFlags" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "hits"; type: "int" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
        }
    }
    Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
    Component {
        name: "QIODevice"
        prototype: "QObject"
        Signal { name: "readyRead" }
        Signal {
            name: "bytesWritten"
            Parameter { name: "bytes"; type: "qlonglong" }
        }
        Signal { name: "aboutToClose" }
        Signal { name: "readChannelFinished" }
    }
    Component {
        name: "QNetworkReply"
        prototype: "QIODevice"
        exports: ["Enginio/QNetworkReply 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "NetworkError"
            values: {
                "NoError": 0,
                "ConnectionRefusedError": 1,
                "RemoteHostClosedError": 2,
                "HostNotFoundError": 3,
                "TimeoutError": 4,
                "OperationCanceledError": 5,
                "SslHandshakeFailedError": 6,
                "TemporaryNetworkFailureError": 7,
                "NetworkSessionFailedError": 8,
                "BackgroundRequestNotAllowedError": 9,
                "TooManyRedirectsError": 10,
                "InsecureRedirectError": 11,
                "UnknownNetworkError": 99,
                "ProxyConnectionRefusedError": 101,
                "ProxyConnectionClosedError": 102,
                "ProxyNotFoundError": 103,
                "ProxyTimeoutError": 104,
                "ProxyAuthenticationRequiredError": 105,
                "UnknownProxyError": 199,
                "ContentAccessDenied": 201,
                "ContentOperationNotPermittedError": 202,
                "ContentNotFoundError": 203,
                "AuthenticationRequiredError": 204,
                "ContentReSendError": 205,
                "ContentConflictError": 206,
                "ContentGoneError": 207,
                "UnknownContentError": 299,
                "ProtocolUnknownError": 301,
                "ProtocolInvalidOperationError": 302,
                "ProtocolFailure": 399,
                "InternalServerError": 401,
                "OperationNotImplementedError": 402,
                "ServiceUnavailableError": 403,
                "UnknownServerError": 499
            }
        }
        Signal { name: "metaDataChanged" }
        Signal { name: "finished" }
        Signal {
            name: "error"
            Parameter { type: "QNetworkReply::NetworkError" }
        }
        Signal { name: "encrypted" }
        Signal {
            name: "sslErrors"
            Parameter { name: "errors"; type: "QList<QSslError>" }
        }
        Signal {
            name: "preSharedKeyAuthenticationRequired"
            Parameter { name: "authenticator"; type: "QSslPreSharedKeyAuthenticator"; isPointer: true }
        }
        Signal {
            name: "redirected"
            Parameter { name: "url"; type: "QUrl" }
        }
        Signal {
            name: "uploadProgress"
            Parameter { name: "bytesSent"; type: "qlonglong" }
            Parameter { name: "bytesTotal"; type: "qlonglong" }
        }
        Signal {
            name: "downloadProgress"
            Parameter { name: "bytesReceived"; type: "qlonglong" }
            Parameter { name: "bytesTotal"; type: "qlonglong" }
        }
        Method { name: "abort" }
        Method { name: "ignoreSslErrors" }
    }
}
