import QtQuick.tooling 1.1

// 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 -notrelocatable Enginio 1.0'

Module {
    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,
                "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" }
        }
    }
    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: "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,
                "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: "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" }
    }
}
