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 GeneralMagic 2.0'

Module {
    dependencies: ["QtQuick 2.12"]
    Component {
        name: "GeneralMagic"
        exports: ["GeneralMagic/GeneralMagic 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Result"
            values: {
                "Ok": 0,
                "General": -1000,
                "Cancel": -999,
                "NotSupported": -998,
                "Exist": -997,
                "Io": -996,
                "AccessDenied": -995,
                "NoDiskSpace": -994,
                "InUse": -993,
                "NotFound": -992,
                "OutOfRange": -991,
                "Invalidated": -990,
                "NoMemory": -989,
                "InvalidInput": -988,
                "ReducedResult": -987,
                "Required": -986,
                "NoRoute": -985,
                "WaypointAccess": -984,
                "RouteTooLong": -983,
                "InternalAbort": -982,
                "Connection": -981,
                "NetworkFailed": -980,
                "NoConnection": -979,
                "ConnectionRequired": -978,
                "SendFailed": -977,
                "RecvFailed": -976,
                "CouldNotStart": -975,
                "NetworkTimeout": -974,
                "NetworkCouldntResolveHost": -973,
                "NetworkCouldntResolveProxy": -972,
                "NetworkCouldntResume": -971,
                "NotLoggedIn": -970,
                "Suspended": -969,
                "UpToDate": -968,
                "ResourceMissing": -967,
                "OperationTimeout": -966,
                "Busy": -965,
                "Expired": -964,
                "EngineNotInitialized": -963
            }
        }
    }
    Component {
        name: "GeneralMagic::AddressInfo"
        exports: ["GeneralMagic/AddressInfo 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "extension"; type: "string" }
        Property { name: "buildingFloor"; type: "string" }
        Property { name: "buildingName"; type: "string" }
        Property { name: "buildingRoom"; type: "string" }
        Property { name: "buildingZone"; type: "string" }
        Property { name: "streetName"; type: "string" }
        Property { name: "streetNumber"; type: "string" }
        Property { name: "postalCode"; type: "string" }
        Property { name: "settlement"; type: "string" }
        Property { name: "city"; type: "string" }
        Property { name: "county"; type: "string" }
        Property { name: "state"; type: "string" }
        Property { name: "stateCode"; type: "string" }
        Property { name: "country"; type: "string" }
        Property { name: "countryCode"; type: "string" }
        Property { name: "district"; type: "string" }
        Property { name: "crossing1"; type: "string" }
        Property { name: "crossing2"; type: "string" }
        Property { name: "segmentName"; type: "string" }
    }
    Component {
        name: "GeneralMagic::AddressSearchService"
        prototype: "GeneralMagic::LandmarkModel"
        exports: ["GeneralMagic/AddressSearchService 2.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "DetailLevel"
            values: {
                "NoDetail": 0,
                "Country": 1,
                "State": 2,
                "County": 3,
                "District": 4,
                "City": 5,
                "Settlement": 6,
                "PostalCode": 7,
                "Street": 8,
                "StreetSection": 9,
                "StreetLane": 10,
                "StreetAlley": 11,
                "HouseNumber": 12,
                "Crossing": 13
            }
        }
        Property { name: "parentLandmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        Property { name: "detailToSearch"; type: "DetailLevel" }
        Property { name: "filter"; type: "string" }
        Property { name: "maximumMatches"; type: "int" }
        Property { name: "searchOnlyOnboard"; type: "bool" }
        Property { name: "automaticLevelSkip"; type: "bool" }
        Signal {
            name: "started"
            Parameter { name: "hasProgress"; type: "bool" }
        }
        Signal {
            name: "progress"
            Parameter { name: "progress"; type: "int" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
            Parameter { name: "hint"; type: "string" }
        }
        Method { name: "search"; type: "bool" }
        Method { name: "cancel" }
        Method {
            name: "addressDetailLevel"
            type: "GeneralMagic::AddressSearchService::DetailLevel"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Method {
            name: "addressDetailLevel"
            type: "GeneralMagic::AddressSearchService::DetailLevel"
        }
        Method {
            name: "countryLevelItem"
            type: "GeneralMagic::Landmark*"
            Parameter { name: "countryIsoCode"; type: "string" }
        }
        Method {
            name: "nextAddressDetailLevel"
            type: "QList<int>"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Method { name: "nextAddressDetailLevel"; type: "QList<int>" }
    }
    Component {
        name: "GeneralMagic::BikePreferences"
        prototype: "QObject"
        exports: ["GeneralMagic/BikePreferences 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Profile"
            values: {
                "Road": 0,
                "Cross": 1,
                "City": 2,
                "Mountain": 3
            }
        }
        Property { name: "hillAvoidanceFactor"; type: "float" }
        Property { name: "profile"; type: "Profile" }
        Property { name: "avoidUnpavedRoads"; type: "bool" }
        Property { name: "avoidFerries"; type: "bool" }
        Property { name: "ignoreRestrictionsOverTrack"; type: "bool" }
        Signal {
            name: "profileChanged"
            Parameter { name: "profile"; type: "GeneralMagic::BikePreferences::Profile" }
        }
        Signal {
            name: "hillAvoidanceFactorChanged"
            Parameter { name: "hillAvoidanceFactor"; type: "float" }
        }
    }
    Component {
        name: "GeneralMagic::CarPreferences"
        prototype: "QObject"
        exports: ["GeneralMagic/CarPreferences 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "avoidMotorways"; type: "bool" }
        Property { name: "avoidTollRoads"; type: "bool" }
        Property { name: "avoidFerries"; type: "bool" }
        Property { name: "avoidTurnAroundInstruction"; type: "bool" }
        Property { name: "avoidUnpavedRoads"; type: "bool" }
        Property { name: "avoidCarpoolLanes"; type: "bool" }
    }
    Component {
        name: "GeneralMagic::Category"
        exports: ["GeneralMagic/Category 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "GenericId"
            values: {
                "Accommodation": 1003,
                "Business": 1013,
                "CarServices": 1006,
                "Education": 1009,
                "Entertainment": 1010,
                "FoodAndDrink": 1002,
                "GasStation": 1000,
                "GeographicalArea": 1012,
                "MedicalServices": 1004,
                "Parking": 1001,
                "PublicServices": 1011,
                "PublicTransport": 1007,
                "ReligiousPlaces": 1015,
                "Roadside": 1016,
                "Shopping": 1005,
                "Sightseeing": 1014,
                "Sports": 1017,
                "Uncategorized": 1018,
                "Wikipedia": 1008
            }
        }
        Property { name: "id"; type: "int"; isReadonly: true }
        Property { name: "storeId"; type: "int"; isReadonly: true }
        Property { name: "name"; type: "string" }
        Property { name: "icon"; type: "GeneralMagic::Icon" }
    }
    Component {
        name: "GeneralMagic::CategoryModel"
        prototype: "QAbstractListModel"
        exports: ["GeneralMagic/CategoryModel 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Method {
            name: "setGenericCategories"
            Parameter { name: "categories"; type: "QJSValue" }
        }
        Method {
            name: "merge"
            Parameter { name: "model"; type: "GeneralMagic::CategoryModel"; isPointer: true }
            Parameter { name: "allowDuplicates"; type: "bool" }
        }
        Method {
            name: "merge"
            Parameter { name: "model"; type: "GeneralMagic::CategoryModel"; isPointer: true }
        }
        Method { name: "count"; type: "int" }
        Method { name: "update" }
        Method {
            name: "categoryById"
            type: "GeneralMagic::Category"
            Parameter { name: "id"; type: "int" }
        }
        Method {
            name: "get"
            type: "GeneralMagic::Category"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "append"
            type: "bool"
            Parameter { name: "category"; type: "Category" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "category"; type: "GeneralMagic::Category" }
        }
        Method { name: "clear" }
        Method {
            name: "indexOf"
            type: "int"
            Parameter { name: "category"; type: "GeneralMagic::Category" }
        }
    }
    Component {
        name: "GeneralMagic::ClimbSection"
        exports: ["GeneralMagic/ClimbSection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Grade"
            values: {
                "CategoryHC": 0,
                "Category1": 1,
                "Category2": 2,
                "Category3": 3,
                "Category4": 4
            }
        }
        Property { name: "startDistance"; type: "int"; isReadonly: true }
        Property { name: "endDistance"; type: "int"; isReadonly: true }
        Property { name: "slope"; type: "float"; isReadonly: true }
        Property { name: "grade"; type: "Grade"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::ContentItem"
        prototype: "QObject"
        exports: ["GeneralMagic/ContentItem 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Status"
            values: {
                "Unavailable": 0,
                "Completed": 1,
                "Paused": 2,
                "DownloadQueued": 3,
                "DownloadWaiting": 4,
                "DownloadWaitingFreeNetwork": 5,
                "DownloadRunning": 6,
                "UpdateWaiting": 7
            }
        }
        Enum {
            name: "Type"
            values: {
                "Unknown": 0,
                "RoadMap": 3,
                "HumanVoice": 4,
                "ComputerVoice": 5,
                "CarModel": 1,
                "ViewStyleHighDPI": 2,
                "ViewStyleNormalDPI": 6
            }
        }
        Property { name: "name"; type: "string"; isReadonly: true }
        Property { name: "id"; type: "string"; isReadonly: true }
        Property { name: "countryCodes"; type: "QStringList"; isReadonly: true }
        Property { name: "language"; type: "string"; isReadonly: true }
        Property { name: "type"; type: "Type"; isReadonly: true }
        Property { name: "filePath"; type: "string"; isReadonly: true }
        Property { name: "clientVersion"; type: "GeneralMagic::Version"; isReadonly: true }
        Property { name: "totalSize"; type: "qlonglong"; isReadonly: true }
        Property { name: "availableSize"; type: "qlonglong"; isReadonly: true }
        Property { name: "completed"; type: "bool"; isReadonly: true }
        Property { name: "status"; type: "Status"; isReadonly: true }
        Property { name: "downloadProgress"; type: "qlonglong"; isReadonly: true }
        Property { name: "canDeleteContent"; type: "bool"; isReadonly: true }
        Property { name: "imagePreviewAvailable"; type: "bool"; isReadonly: true }
        Property { name: "imagePreview"; type: "GeneralMagic::Icon"; isReadonly: true }
        Property {
            name: "updateItem"
            type: "GeneralMagic::ContentItem"
            isReadonly: true
            isPointer: true
        }
        Property { name: "updateSize"; type: "qlonglong"; isReadonly: true }
        Property { name: "updateVersion"; type: "GeneralMagic::Version"; isReadonly: true }
        Property { name: "result"; type: "GeneralMagic::Result"; isReadonly: true }
        Property { name: "notifyProgressIntervalMs"; type: "int" }
        Signal {
            name: "started"
            Parameter { name: "hasProgress"; type: "bool" }
        }
        Signal {
            name: "progress"
            Parameter { name: "percentage"; type: "int" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
            Parameter { name: "hint"; type: "string" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
        }
        Signal { name: "deleted" }
        Signal {
            name: "notifyProgressIntervalChanged"
            Parameter { name: "notifyProgressIntervalMs"; type: "int" }
        }
        Method {
            name: "asyncDownload"
            type: "bool"
            Parameter { name: "allowChargedNetworks"; type: "bool" }
        }
        Method { name: "asyncDownload"; type: "bool" }
        Method { name: "pauseDownload"; type: "bool" }
        Method { name: "cancelDownload"; type: "bool" }
        Method { name: "deleteContent"; type: "bool" }
        Method {
            name: "setNotifyProgressInterval"
            Parameter { name: "notifyProgressIntervalMs"; type: "int" }
        }
        Method { name: "clone"; type: "GeneralMagic::ContentItem*" }
    }
    Component {
        name: "GeneralMagic::ContentModel"
        prototype: "QAbstractListModel"
        exports: ["GeneralMagic/ContentModel 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Property { name: "country"; type: "string" }
        Property { name: "filter"; type: "string" }
        Signal { name: "modelChanged" }
        Signal {
            name: "countryChanged"
            Parameter { name: "country"; type: "string" }
        }
        Signal {
            name: "filterChanged"
            Parameter { name: "filter"; type: "string" }
        }
        Method {
            name: "get"
            type: "GeneralMagic::ContentItem*"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "setCountry"
            Parameter { name: "country"; type: "string" }
        }
        Method {
            name: "setFilter"
            Parameter { name: "filter"; type: "string" }
        }
    }
    Component {
        name: "GeneralMagic::ContentStore"
        prototype: "GeneralMagic::ContentModel"
        exports: ["GeneralMagic/ContentStore 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "GeneralMagic::ContentItem::Type" }
        Property { name: "status"; type: "GeneralMagic::Result"; isReadonly: true }
        Property { name: "updating"; type: "bool"; isReadonly: true }
        Property { name: "localContentOnly"; type: "bool" }
        Signal {
            name: "localContentOnlyChanged"
            Parameter { name: "localContentOnly"; type: "bool" }
        }
        Signal {
            name: "typeChanged"
            Parameter { name: "type"; type: "GeneralMagic::ContentItem::Type" }
        }
        Signal {
            name: "updatingChanged"
            Parameter { name: "updating"; type: "bool" }
        }
        Method {
            name: "item"
            type: "GeneralMagic::ContentItem*"
            Parameter { name: "id"; type: "string" }
        }
        Method { name: "update"; type: "GeneralMagic::Result" }
        Method { name: "cancel" }
        Method {
            name: "setType"
            Parameter { name: "type"; type: "GeneralMagic::ContentItem::Type" }
        }
        Method {
            name: "setLocalContentOnly"
            Parameter { name: "localContentOnly"; type: "bool" }
        }
    }
    Component {
        name: "GeneralMagic::ContentUpdater"
        prototype: "GeneralMagic::ContentModel"
        exports: ["GeneralMagic/ContentUpdater 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Status"
            values: {
                "Idle": 0,
                "WaitConnection": 1,
                "WaitWIFIConnection": 2,
                "CheckForUpdate": 3,
                "Download": 4,
                "FullyReady": 5,
                "PartialReady": 6,
                "DownloadRemainingContent": 7,
                "DownloadPendingContent": 8,
                "Complete": 9,
                "Error": 10
            }
        }
        Property { name: "status"; type: "Status"; isReadonly: true }
        Property { name: "progress"; type: "int"; isReadonly: true }
        Property { name: "canApply"; type: "bool"; isReadonly: true }
        Property { name: "autoApplyWhenReady"; type: "bool" }
        Signal {
            name: "statusChanged"
            Parameter { name: "status"; type: "GeneralMagic::ContentUpdater::Status" }
        }
        Signal { name: "started" }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
            Parameter { name: "hint"; type: "string" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
        }
        Signal {
            name: "autoApplyWhenReadyChanged"
            Parameter { name: "autoApplyWhenReady"; type: "bool" }
        }
        Method {
            name: "update"
            type: "bool"
            Parameter { name: "allowChargeNetwork"; type: "bool" }
        }
        Method { name: "update"; type: "bool" }
        Method { name: "apply"; type: "bool" }
        Method { name: "pause" }
        Method { name: "cancel" }
    }
    Component {
        name: "GeneralMagic::Coordinates"
        prototype: "QObject"
        exports: ["GeneralMagic/Coordinates 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Property { name: "latitude"; type: "double" }
        Property { name: "longitude"; type: "double" }
        Property { name: "altitude"; type: "double" }
        Property { name: "horizontalAccuracy"; type: "double" }
        Property { name: "verticalAccuracy"; type: "double" }
        Signal {
            name: "latitudeChanged"
            Parameter { name: "latitude"; type: "double" }
        }
        Signal {
            name: "longitudeChanged"
            Parameter { name: "longitude"; type: "double" }
        }
        Signal {
            name: "altitudeChanged"
            Parameter { name: "altitude"; type: "double" }
        }
        Signal {
            name: "horizontalAccuracyChanged"
            Parameter { name: "horizontalAccuracy"; type: "double" }
        }
        Signal {
            name: "verticalAccuracyChanged"
            Parameter { name: "verticalAccuracy"; type: "double" }
        }
        Method {
            name: "atDistanceAndAzimuth"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "distance"; type: "double" }
            Parameter { name: "azimuth"; type: "double" }
            Parameter { name: "distanceUp"; type: "double" }
        }
        Method {
            name: "atDistanceAndAzimuth"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "distance"; type: "double" }
            Parameter { name: "azimuth"; type: "double" }
        }
        Method { name: "isValid"; type: "bool" }
        Method {
            name: "distance"
            type: "double"
            Parameter { name: "point"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "azimuth"
            type: "double"
            Parameter { name: "point"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method { name: "clear" }
        Method {
            name: "setLatitude"
            Parameter { name: "latitude"; type: "double" }
        }
        Method {
            name: "setLongitude"
            Parameter { name: "longitude"; type: "double" }
        }
        Method {
            name: "setAltitude"
            Parameter { name: "altitude"; type: "double" }
        }
        Method {
            name: "setHorizontalAccuracy"
            Parameter { name: "horizontalAccuracy"; type: "double" }
        }
        Method {
            name: "setVerticalAccuracy"
            Parameter { name: "verticalAccuracy"; type: "double" }
        }
        Method { name: "clone"; type: "GeneralMagic::Coordinates*" }
    }
    Component {
        name: "GeneralMagic::DataSource"
        prototype: "QObject"
        exports: ["GeneralMagic/DataSource 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "PlaybackStatus"
            values: {
                "Unknown": 0,
                "Stopped": 1,
                "Paused": 2,
                "Playing": 3
            }
        }
        Enum {
            name: "Type"
            values: {
                "Live": 0,
                "Playback": 1
            }
        }
        Enum {
            name: "TransportMode"
            values: {
                "Car": 0,
                "Truck": 1,
                "Bicycle": 2,
                "Pedestrian": 3,
                "AutoSelect": 4
            }
        }
        Enum {
            name: "AccelUnit"
            values: {
                "G": 0,
                "MetersPerSecondSquared": 1
            }
        }
        Enum {
            name: "CompassAccuracy"
            values: {
                "Unknown": 0,
                "Low": 1,
                "Medium": 2,
                "High": 3
            }
        }
        Property { name: "transportMode"; type: "TransportMode" }
        Property { name: "snapToMapLinkThresholdForVehicle"; type: "int" }
        Property { name: "snapToMapLinkThresholdForBike"; type: "int" }
        Property { name: "preferSnapToRoute"; type: "bool" }
        Property { name: "improvedPositionUpdateFreq"; type: "int" }
        Property { name: "improvedPosition"; type: "ImprovedPosition"; isReadonly: true; isPointer: true }
        Property { name: "type"; type: "Type" }
        Property { name: "playbackFile"; type: "QUrl" }
        Property { name: "playbackStatus"; type: "PlaybackStatus"; isReadonly: true }
        Property { name: "playbackMinSpeedMultiplier"; type: "float"; isReadonly: true }
        Property { name: "playbackSpeedMultiplier"; type: "float" }
        Property { name: "playbackMaxSpeedMultiplier"; type: "float"; isReadonly: true }
        Property { name: "playbackDuration"; type: "int"; isReadonly: true }
        Signal { name: "configurationsChanged" }
        Signal { name: "playbackChanged" }
        Method {
            name: "setPositionSource"
            Parameter { name: "positionSource"; type: "QJSValue" }
        }
        Method {
            name: "pushPosition"
            Parameter { name: "pos"; type: "GeneralMagic::Position"; isPointer: true }
        }
        Method {
            name: "pushAccelerometerData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "unit"; type: "AccelUnit" }
            Parameter { name: "timestamp"; type: "QDateTime" }
        }
        Method {
            name: "pushAccelerometerData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "unit"; type: "AccelUnit" }
        }
        Method {
            name: "pushAccelerometerData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
        }
        Method {
            name: "pushCompassData"
            Parameter { name: "heading"; type: "float" }
            Parameter { name: "accuracy"; type: "CompassAccuracy" }
            Parameter { name: "timestamp"; type: "QDateTime" }
        }
        Method {
            name: "pushCompassData"
            Parameter { name: "heading"; type: "float" }
            Parameter { name: "accuracy"; type: "CompassAccuracy" }
        }
        Method {
            name: "pushCompassData"
            Parameter { name: "heading"; type: "float" }
        }
        Method {
            name: "pushGyroscopeData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "timestamp"; type: "QDateTime" }
        }
        Method {
            name: "pushGyroscopeData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
        }
        Method {
            name: "pushMagnetometerData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "timestamp"; type: "QDateTime" }
        }
        Method {
            name: "pushMagnetometerData"
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
        }
        Method {
            name: "saveLastKnownPosition"
            Parameter { name: "settingsKey"; type: "string" }
        }
        Method { name: "saveLastKnownPosition" }
        Method {
            name: "loadLastKnownPosition"
            Parameter { name: "settingsKey"; type: "string" }
        }
        Method { name: "loadLastKnownPosition" }
        Method { name: "pause"; type: "bool" }
        Method { name: "resume"; type: "bool" }
        Method { name: "step" }
    }
    Component {
        name: "GeneralMagic::DataSourceRecorder"
        prototype: "QObject"
        exports: ["GeneralMagic/DataSourceRecorder 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "active"; type: "bool" }
        Property { name: "folder"; type: "string" }
        Property { name: "deviceModel"; type: "string" }
        Property { name: "chunkDurationMinutes"; type: "long" }
        Property { name: "continuousRecording"; type: "bool" }
        Property { name: "maxDiskSpaceUsageMB"; type: "long" }
        Property { name: "keepMinMinutes"; type: "long" }
        Property { name: "deleteOlderThanKeepMin"; type: "bool" }
        Signal {
            name: "fileSaved"
            Parameter { name: "path"; type: "string" }
        }
        Method { name: "start" }
        Method { name: "stop" }
    }
    Component {
        name: "GeneralMagic::DynamicIcon"
        exports: ["GeneralMagic/DynamicIcon 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Method {
            name: "image"
            type: "QImage"
            Parameter { name: "size"; type: "QSize" }
            Parameter { name: "arrowInner"; type: "QColor" }
            Parameter { name: "arrowOuter"; type: "QColor" }
            Parameter { name: "slotInner"; type: "QColor" }
            Parameter { name: "slotOuter"; type: "QColor" }
        }
        Method {
            name: "image"
            type: "QImage"
            Parameter { name: "size"; type: "QSize" }
        }
    }
    Component {
        name: "GeneralMagic::DynamicIconView"
        defaultProperty: "data"
        prototype: "QQuickItem"
        exports: ["GeneralMagic/DynamicIconView 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "iconSource"; type: "GeneralMagic::DynamicIcon" }
        Property { name: "arrowInner"; type: "QColor" }
        Property { name: "arrowOuter"; type: "QColor" }
        Property { name: "slotInner"; type: "QColor" }
        Property { name: "slotOuter"; type: "QColor" }
        Signal {
            name: "iconChanged"
            Parameter { name: "icon"; type: "GeneralMagic::DynamicIcon" }
        }
        Signal {
            name: "arrowInnerChanged"
            Parameter { name: "arrowInner"; type: "QColor" }
        }
        Signal {
            name: "arrowOuterChanged"
            Parameter { name: "arrowOuter"; type: "QColor" }
        }
        Signal {
            name: "slotInnerChanged"
            Parameter { name: "slotInner"; type: "QColor" }
        }
        Signal {
            name: "slotOuterChanged"
            Parameter { name: "slotOuter"; type: "QColor" }
        }
        Method {
            name: "setIcon"
            Parameter { name: "icon"; type: "GeneralMagic::DynamicIcon" }
        }
        Method {
            name: "setArrowInner"
            Parameter { name: "arrowInner"; type: "QColor" }
        }
        Method {
            name: "setArrowOuter"
            Parameter { name: "arrowOuter"; type: "QColor" }
        }
        Method {
            name: "setSlotInner"
            Parameter { name: "slotInner"; type: "QColor" }
        }
        Method {
            name: "setSlotOuter"
            Parameter { name: "slotOuter"; type: "QColor" }
        }
    }
    Component {
        name: "GeneralMagic::FollowingPositionSettings"
        prototype: "QObject"
        exports: ["GeneralMagic/FollowingPositionSettings 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "timeBeforeTurnPresentation"; type: "int" }
        Property { name: "cameraFocus"; type: "QPointF" }
        Property { name: "touchHandlerModifyPersistent"; type: "bool" }
        Property { name: "touchHandlerExitAllow"; type: "bool" }
        Property { name: "perspective"; type: "GeneralMagic::MapView::ViewPerspective" }
        Property { name: "viewAngle"; type: "double" }
        Property { name: "zoomLevel"; type: "int" }
        Property { name: "accuracyCircleVisibile"; type: "bool" }
    }
    Component {
        name: "GeneralMagic::GeographicArea"
        prototype: "QObject"
        exports: ["GeneralMagic/GeographicArea 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "Undefined": 0,
                "Circle": 1,
                "Rectangle": 2,
                "Polygon": 3,
                "TileCollection": 4
            }
        }
        Property { name: "type"; type: "Type"; isReadonly: true }
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Property {
            name: "boundingBox"
            type: "GeneralMagic::GeographicRectangle"
            isReadonly: true
            isPointer: true
        }
        Property { name: "centerPoint"; type: "GeneralMagic::Coordinates"; isPointer: true }
        Method {
            name: "contains"
            type: "bool"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method { name: "asCircle"; type: "GeneralMagic::GeographicCircle*" }
        Method { name: "asPolygon"; type: "GeneralMagic::GeographicPolygon*" }
        Method { name: "asRectangle"; type: "GeneralMagic::GeographicRectangle*" }
    }
    Component {
        name: "GeneralMagic::GeographicCircle"
        prototype: "GeneralMagic::GeographicArea"
        exports: ["GeneralMagic/GeographicCircle 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "radius"; type: "int" }
    }
    Component {
        name: "GeneralMagic::GeographicPolygon"
        prototype: "GeneralMagic::GeographicArea"
        exports: ["GeneralMagic/GeographicPolygon 2.0"]
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "GeneralMagic::GeographicRectangle"
        prototype: "GeneralMagic::GeographicArea"
        exports: ["GeneralMagic/GeographicRectangle 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "topLeft"; type: "Coordinates"; isPointer: true }
        Property { name: "bottomRight"; type: "Coordinates"; isPointer: true }
        Method {
            name: "contains"
            type: "bool"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
        Method {
            name: "intersects"
            type: "bool"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
        Method {
            name: "intersectWith"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
        Method {
            name: "uniteWith"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
        Method {
            name: "intersected"
            type: "GeneralMagic::GeographicRectangle*"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
        Method {
            name: "united"
            type: "GeneralMagic::GeographicRectangle*"
            Parameter { name: "rectangle"; type: "GeneralMagic::GeographicRectangle"; isPointer: true }
        }
    }
    Component {
        name: "GeneralMagic::Icon"
        exports: ["GeneralMagic/Icon 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "GenericId"
            values: {
                "BlueBall": 54000,
                "GreenBall": 54001,
                "Menu_MoreDotsCircle": 54005,
                "RedBall": 54002,
                "Search_Results_Pin": 54003,
                "Waypoint_Finish": 54006,
                "Waypoint_Intermediary": 54007,
                "Waypoint_Start": 54008,
                "YellowBall": 54004
            }
        }
        Property { name: "url"; type: "QUrl"; isReadonly: true }
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Method {
            name: "image"
            type: "QImage"
            Parameter { name: "size"; type: "QSize" }
        }
    }
    Component {
        name: "GeneralMagic::IconDatabase"
        prototype: "QAbstractListModel"
        exports: ["GeneralMagic/IconDatabase 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method { name: "count"; type: "int" }
        Method {
            name: "get"
            type: "GeneralMagic::Icon"
            Parameter { name: "url"; type: "QUrl" }
        }
        Method {
            name: "get"
            type: "GeneralMagic::Icon"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "addIcon"
            type: "QUrl"
            Parameter { name: "file"; type: "QUrl" }
        }
        Method {
            name: "removeIcon"
            type: "bool"
            Parameter { name: "id"; type: "QUrl" }
        }
        Method {
            name: "removeIcon"
            type: "bool"
            Parameter { name: "icon"; type: "GeneralMagic::Icon" }
        }
    }
    Component {
        name: "GeneralMagic::IconView"
        defaultProperty: "data"
        prototype: "QQuickItem"
        exports: ["GeneralMagic/IconView 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "iconSource"; type: "GeneralMagic::Icon" }
        Signal {
            name: "iconChanged"
            Parameter { name: "icon"; type: "GeneralMagic::Icon" }
        }
        Method {
            name: "setIcon"
            Parameter { name: "icon"; type: "GeneralMagic::Icon" }
        }
    }
    Component {
        name: "GeneralMagic::ImprovedPosition"
        prototype: "GeneralMagic::Position"
        exports: ["GeneralMagic/ImprovedPosition 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "RoadModifier"
            values: {
                "None": 0,
                "Tunnel": 1,
                "Bridge": 2,
                "Ramp": 4,
                "Tollway": 8,
                "Roundabout": 16,
                "OneWay": 32,
                "NoUTurn": 64,
                "LeftDriveSide": 128,
                "Motorway": 256,
                "MotorwayLink": 512
            }
        }
        Enum {
            name: "RoadModifiers"
            values: {
                "None": 0,
                "Tunnel": 1,
                "Bridge": 2,
                "Ramp": 4,
                "Tollway": 8,
                "Roundabout": 16,
                "OneWay": 32,
                "NoUTurn": 64,
                "LeftDriveSide": 128,
                "Motorway": 256,
                "MotorwayLink": 512
            }
        }
        Property { name: "hasRoadLocalization"; type: "bool"; isReadonly: true }
        Property { name: "addressInfo"; type: "GeneralMagic::AddressInfo"; isReadonly: true }
        Property { name: "roadModifiers"; type: "RoadModifiers"; isReadonly: true }
        Property { name: "roadSpeedLimit"; type: "double"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::Landmark"
        prototype: "QObject"
        exports: ["GeneralMagic/Landmark 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "landmarkId"; type: "int"; isReadonly: true }
        Property { name: "storeId"; type: "int"; isReadonly: true }
        Property { name: "name"; type: "string" }
        Property { name: "description"; type: "string" }
        Property { name: "author"; type: "string" }
        Property { name: "providerId"; type: "int" }
        Property { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        Property { name: "icon"; type: "GeneralMagic::Icon" }
        Property { name: "addressInfo"; type: "GeneralMagic::AddressInfo" }
        Property {
            name: "categories"
            type: "GeneralMagic::CategoryModel"
            isReadonly: true
            isPointer: true
        }
        Property { name: "path"; type: "GeneralMagic::Path" }
        Property { name: "geographicArea"; type: "GeneralMagic::GeographicArea"; isPointer: true }
        Method { name: "clear" }
        Method {
            name: "setPathDepartureAndDestination"
            Parameter { name: "departure"; type: "const GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "destination"; type: "const GeneralMagic::Coordinates"; isPointer: true }
        }
    }
    Component {
        name: "GeneralMagic::LandmarkList"
        defaultProperty: "children"
        prototype: "GeneralMagic::LandmarkModel"
        exports: ["GeneralMagic/LandmarkList 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "children"; type: "GeneralMagic::Landmark"; isList: true; isReadonly: true }
        Property {
            name: "boundingBox"
            type: "GeneralMagic::GeographicRectangle"
            isReadonly: true
            isPointer: true
        }
        Method {
            name: "append"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Method { name: "clear" }
        Method {
            name: "get"
            type: "GeneralMagic::Landmark*"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "insert"
            type: "bool"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Method {
            name: "remove"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "count"; type: "int" }
        }
        Method {
            name: "remove"
            Parameter { name: "index"; type: "int" }
        }
        Method { name: "pop" }
        Method { name: "size"; type: "int" }
    }
    Component {
        name: "GeneralMagic::LandmarkModel"
        prototype: "QAbstractListModel"
        exports: ["GeneralMagic/LandmarkModel 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Method {
            name: "get"
            type: "GeneralMagic::Landmark*"
            Parameter { name: "index"; type: "int" }
        }
    }
    Component {
        name: "GeneralMagic::LandmarkStore"
        prototype: "QObject"
        exports: ["GeneralMagic/LandmarkStore 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "id"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "int"; isReadonly: true }
        Property { name: "name"; type: "string"; isReadonly: true }
        Property {
            name: "categories"
            type: "GeneralMagic::CategoryModel"
            isReadonly: true
            isPointer: true
        }
    }
    Component {
        name: "GeneralMagic::LandmarkStoreManager"
        prototype: "QObject"
        exports: ["GeneralMagic/LandmarkStoreManager 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property {
            name: "mapPoisLandmarkStore"
            type: "GeneralMagic::LandmarkStore"
            isReadonly: true
            isPointer: true
        }
        Property { name: "genericCategories"; type: "QVariantList"; isReadonly: true }
        Property { name: "length"; type: "int"; isReadonly: true }
        Method {
            name: "id"
            type: "int"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "get"
            type: "GeneralMagic::LandmarkStore*"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "landmarkStore"
            type: "GeneralMagic::LandmarkStore*"
            Parameter { name: "id"; type: "int" }
        }
        Method {
            name: "create"
            type: "int"
            Parameter { name: "name"; type: "string" }
            Parameter { name: "zoom"; type: "int" }
            Parameter { name: "folder"; type: "string" }
        }
        Method {
            name: "create"
            type: "int"
            Parameter { name: "name"; type: "string" }
            Parameter { name: "zoom"; type: "int" }
        }
        Method {
            name: "create"
            type: "int"
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "id"; type: "int" }
        }
    }
    Component {
        name: "GeneralMagic::LandmarkStoresCollection"
        prototype: "QObject"
        exports: ["GeneralMagic/LandmarkStoresCollection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method { name: "clear" }
        Method { name: "storesCount"; type: "int" }
        Method {
            name: "storeId"
            type: "int"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "contains"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
        }
        Method {
            name: "contains"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
            Parameter { name: "categoryId"; type: "int" }
        }
        Method {
            name: "categoriesCount"
            type: "int"
            Parameter { name: "storeId"; type: "int" }
        }
        Method {
            name: "categoryId"
            type: "int"
            Parameter { name: "storeId"; type: "int" }
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "addCategory"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
            Parameter { name: "categoryId"; type: "int" }
        }
        Method {
            name: "addCategory"
            type: "bool"
            Parameter { name: "category"; type: "GeneralMagic::Category" }
        }
        Method {
            name: "addCategories"
            type: "bool"
            Parameter { name: "categories"; type: "GeneralMagic::CategoryModel"; isPointer: true }
        }
        Method {
            name: "removeCategory"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
            Parameter { name: "categoryId"; type: "int" }
        }
        Method {
            name: "addAllCategories"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
        }
        Method {
            name: "removeAllCategories"
            type: "bool"
            Parameter { name: "storeId"; type: "int" }
        }
    }
    Component {
        name: "GeneralMagic::MapDetails"
        prototype: "QObject"
        exports: ["GeneralMagic/MapDetails 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Coverage"
            values: {
                "Offline": 0,
                "OnlineTile": 1,
                "OnlineNoData": 2,
                "Unknown": 3
            }
        }
        Property { name: "version"; type: "GeneralMagic::Version"; isReadonly: true }
        Property { name: "releaseInfo"; type: "GeneralMagic::MapReleaseInfo"; isReadonly: true }
        Method {
            name: "coverage"
            type: "GeneralMagic::MapDetails::Coverage"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "coverageCoordList"
            type: "GeneralMagic::MapDetails::Coverage"
            Parameter { name: "marker"; type: "GeneralMagic::Marker"; isPointer: true }
        }
        Method {
            name: "countryCoverage"
            type: "GeneralMagic::MapDetails::Coverage"
            Parameter { name: "code"; type: "string" }
        }
        Method {
            name: "countryName"
            type: "string"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "countryCode"
            type: "string"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "countryName"
            type: "string"
            Parameter { name: "code"; type: "string" }
        }
        Method {
            name: "countryFlag"
            type: "GeneralMagic::Icon"
            Parameter { name: "code"; type: "string" }
        }
    }
    Component {
        name: "GeneralMagic::MapScene"
        prototype: "QObject"
        exports: ["GeneralMagic/MapScene 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method {
            name: "setDefaultPositionTrackerFromGlbData"
            type: "bool"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "setDefaultPositionTrackerFromGlbFile"
            type: "bool"
            Parameter { name: "filePath"; type: "QUrl" }
        }
    }
    Component {
        name: "GeneralMagic::MapView"
        defaultProperty: "data"
        prototype: "QQuickFramebufferObject"
        exports: ["GeneralMagic/MapView 2.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "TilesInViewStatus"
            values: {
                "Complete": 0,
                "IncompleteOnline": 1
            }
        }
        Enum {
            name: "CameraTransitionStatus"
            values: {
                "Stationary": 0,
                "Moving": 1
            }
        }
        Enum {
            name: "Animation"
            values: {
                "None": 0,
                "Linear": 1
            }
        }
        Enum {
            name: "DisplayType"
            values: {
                "CommonDisplay": 0,
                "LcdDisplayH": 1,
                "LcdDisplayV": 2
            }
        }
        Enum {
            name: "HighlightOption"
            values: {
                "ShowLandmark": 1,
                "ShowContour": 2,
                "Group": 4,
                "Overlap": 8,
                "NoFading": 16
            }
        }
        Enum {
            name: "HighlightOptions"
            values: {
                "ShowLandmark": 1,
                "ShowContour": 2,
                "Group": 4,
                "Overlap": 8,
                "NoFading": 16
            }
        }
        Enum {
            name: "ViewPerspective"
            values: {
                "View2D": 0,
                "View3D": 1
            }
        }
        Enum {
            name: "BuildingsVisibility"
            values: {
                "Style": 0,
                "Hide": 1,
                "Show2D": 2,
                "Show3D": 3
            }
        }
        Enum {
            name: "DetailsQualityLevel"
            values: {
                "Low": 0,
                "Medium": 1,
                "High": 2
            }
        }
        Enum {
            name: "Gesture"
            values: {
                "Pan": 8192,
                "PanEnableVelocity": 32768,
                "Pinch": 131072,
                "PinchEnableVelocity": 65536,
                "Rotate": 262144,
                "RotateEnableVelocity": 8388608,
                "Tilt": 524288
            }
        }
        Enum {
            name: "Gestures"
            values: {
                "Pan": 8192,
                "PanEnableVelocity": 32768,
                "Pinch": 131072,
                "PinchEnableVelocity": 65536,
                "Rotate": 262144,
                "RotateEnableVelocity": 8388608,
                "Tilt": 524288
            }
        }
        Property {
            name: "extensions"
            type: "GeneralMagic::MapViewExtensions"
            isReadonly: true
            isPointer: true
        }
        Property { name: "cursorPosition"; type: "QPoint" }
        Property { name: "animationTime"; type: "int" }
        Property { name: "zoomLevel"; type: "int" }
        Property { name: "maxZoomLevel"; type: "int"; isReadonly: true }
        Property { name: "slippyZoomLevel"; type: "double" }
        Property { name: "maxSlippyZoomLevel"; type: "double"; isReadonly: true }
        Property { name: "viewAngle"; type: "double" }
        Property { name: "minViewAngle"; type: "double"; isReadonly: true }
        Property { name: "maxViewAngle"; type: "double"; isReadonly: true }
        Property { name: "tiltAngle"; type: "double" }
        Property { name: "rotationAngle"; type: "double" }
        Property {
            name: "landmarksCursorSelection"
            type: "GeneralMagic::Landmark"
            isList: true
            isReadonly: true
        }
        Property {
            name: "streetsCursorSelection"
            type: "GeneralMagic::Landmark"
            isList: true
            isReadonly: true
        }
        Property { name: "markersCursorSelection"; type: "QVariantList"; isReadonly: true }
        Property { name: "routesCursorSelection"; type: "QVariantList"; isReadonly: true }
        Property { name: "pathCursorSelection"; type: "GeneralMagic::Path"; isReadonly: true }
        Property { name: "followingPosition"; type: "bool" }
        Property { name: "gesturesEnabled"; type: "bool" }
        Property { name: "mipmap"; type: "bool" }
        Property { name: "displayType"; type: "GeneralMagic::MapView::DisplayType" }
        Property { name: "pixelRatio"; type: "double" }
        Property { name: "pixelDensity"; type: "double" }
        Property { name: "fontScaleFactor"; type: "double" }
        Property { name: "stylePath"; type: "QUrl" }
        Property { name: "styleId"; type: "string" }
        Property { name: "viewPerspective"; type: "GeneralMagic::MapView::ViewPerspective" }
        Property { name: "enableCursor"; type: "bool" }
        Property { name: "cursorVisibility"; type: "bool" }
        Property { name: "positionIndicatorVisibility"; type: "bool" }
        Property {
            name: "landmarkStoresCollection"
            type: "GeneralMagic::LandmarkStoresCollection"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "routeCollection"
            type: "GeneralMagic::RouteCollection"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "pathCollection"
            type: "GeneralMagic::PathCollection"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "markerCollection"
            type: "GeneralMagic::MarkerCollection"
            isReadonly: true
            isPointer: true
        }
        Property { name: "gpsAnchorPosition"; type: "QPointF" }
        Property { name: "buildingsVisibility"; type: "GeneralMagic::MapView::BuildingsVisibility" }
        Property { name: "detailsQualityLevel"; type: "GeneralMagic::MapView::DetailsQualityLevel" }
        Property { name: "gestures"; type: "GeneralMagic::MapView::Gestures" }
        Property { name: "autoFocus"; type: "bool" }
        Property {
            name: "followingPositionSettings"
            type: "GeneralMagic::FollowingPositionSettings"
            isReadonly: true
            isPointer: true
        }
        Signal {
            name: "mapRendered"
            Parameter { name: "tivStatus"; type: "GeneralMagic::MapView::TilesInViewStatus" }
            Parameter { name: "camStatus"; type: "GeneralMagic::MapView::CameraTransitionStatus" }
        }
        Signal { name: "cursorSelectionUpdated" }
        Signal {
            name: "routeSelected"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Signal {
            name: "animationTimeChanged"
            Parameter { name: "animationTime"; type: "int" }
        }
        Signal {
            name: "gesturesEnabledChanged"
            Parameter { name: "gesturesEnabled"; type: "bool" }
        }
        Signal {
            name: "mipmapChanged"
            Parameter { name: "mipmap"; type: "bool" }
        }
        Signal {
            name: "displayTypeChanged"
            Parameter { name: "displayType"; type: "GeneralMagic::MapView::DisplayType" }
        }
        Signal {
            name: "pixelRatioChanged"
            Parameter { name: "pixelRatio"; type: "double" }
        }
        Signal {
            name: "pixelDensityChanged"
            Parameter { name: "pixelDensity"; type: "double" }
        }
        Signal {
            name: "fontScaleFactorChanged"
            Parameter { name: "fontScaleFactor"; type: "double" }
        }
        Signal { name: "mapColorsChanged" }
        Signal { name: "frameRateChanged" }
        Signal { name: "mapPathChanged" }
        Signal {
            name: "mapIdChanged"
            Parameter { name: "mapStyleId"; type: "string" }
        }
        Signal {
            name: "rotationAngleChanged"
            Parameter { name: "rotationAngle"; type: "double" }
        }
        Signal {
            name: "gpsAnchorPositionChanged"
            Parameter { name: "gpsAnchorPosition"; type: "QPointF" }
        }
        Method {
            name: "enableGesture"
            Parameter { name: "gesture"; type: "GeneralMagic::MapView::Gesture" }
        }
        Method {
            name: "disableGesture"
            Parameter { name: "gesture"; type: "GeneralMagic::MapView::Gesture" }
        }
        Method {
            name: "setCursorPosition"
            Parameter { name: "cursorPosition"; type: "QPointF" }
        }
        Method {
            name: "setZoomLevel"
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "durationMs"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
        }
        Method {
            name: "setZoomLevel"
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "durationMs"; type: "int" }
        }
        Method {
            name: "setZoomLevel"
            Parameter { name: "zoomLevel"; type: "int" }
        }
        Method {
            name: "setSlippyZoomLevel"
            Parameter { name: "slippyZoomLevel"; type: "double" }
            Parameter { name: "durationMs"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
        }
        Method {
            name: "setSlippyZoomLevel"
            Parameter { name: "slippyZoomLevel"; type: "double" }
            Parameter { name: "durationMs"; type: "int" }
        }
        Method {
            name: "setSlippyZoomLevel"
            Parameter { name: "slippyZoomLevel"; type: "double" }
        }
        Method { name: "zoomIn" }
        Method { name: "zoomOut" }
        Method {
            name: "startFollowingPosition"
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "viewAngle"; type: "double" }
        }
        Method {
            name: "startFollowingPosition"
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
            Parameter { name: "zoomLevel"; type: "int" }
        }
        Method {
            name: "startFollowingPosition"
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method { name: "startFollowingPosition" }
        Method {
            name: "restoreFollowingPosition"
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method { name: "restoreFollowingPosition" }
        Method { name: "skipAnimation" }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "mapAngle"; type: "double" }
            Parameter { name: "viewAngle"; type: "double" }
            Parameter { name: "screenCoordinates"; type: "QPointF" }
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "mapAngle"; type: "double" }
            Parameter { name: "viewAngle"; type: "double" }
            Parameter { name: "screenCoordinates"; type: "QPointF" }
        }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "mapAngle"; type: "double" }
            Parameter { name: "viewAngle"; type: "double" }
        }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "mapAngle"; type: "double" }
        }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
        }
        Method {
            name: "centerOnCoordinates"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "centerOnRoute"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "screen"; type: "QRect" }
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method {
            name: "centerOnRoute"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "screen"; type: "QRect" }
        }
        Method {
            name: "centerOnRoute"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "centerOnRouteList"
            Parameter { name: "routes"; type: "QJSValue" }
            Parameter { name: "screen"; type: "QRect" }
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method {
            name: "centerOnRouteList"
            Parameter { name: "routes"; type: "QJSValue" }
            Parameter { name: "screen"; type: "QRect" }
        }
        Method {
            name: "centerOnRouteList"
            Parameter { name: "routes"; type: "QJSValue" }
        }
        Method {
            name: "centerOnRouteInstruction"
            Parameter { name: "routeInstruction"; type: "GeneralMagic::RouteInstruction" }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method {
            name: "centerOnRouteInstruction"
            Parameter { name: "routeInstruction"; type: "GeneralMagic::RouteInstruction" }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
        }
        Method {
            name: "centerOnRouteInstruction"
            Parameter { name: "routeInstruction"; type: "GeneralMagic::RouteInstruction" }
            Parameter { name: "zoomLevel"; type: "int" }
        }
        Method {
            name: "centerOnRouteInstruction"
            Parameter { name: "routeInstruction"; type: "GeneralMagic::RouteInstruction" }
        }
        Method {
            name: "centerOnGeographicArea"
            Parameter { name: "geographicArea"; type: "GeneralMagic::GeographicArea"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
            Parameter { name: "animation"; type: "GeneralMagic::MapView::Animation" }
        }
        Method {
            name: "centerOnGeographicArea"
            Parameter { name: "geographicArea"; type: "GeneralMagic::GeographicArea"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
            Parameter { name: "pos"; type: "QPointF" }
        }
        Method {
            name: "centerOnGeographicArea"
            Parameter { name: "geographicArea"; type: "GeneralMagic::GeographicArea"; isPointer: true }
            Parameter { name: "zoomLevel"; type: "int" }
        }
        Method {
            name: "centerOnGeographicArea"
            Parameter { name: "geographicArea"; type: "GeneralMagic::GeographicArea"; isPointer: true }
        }
        Method { name: "cursorWgsPosition"; type: "GeneralMagic::Coordinates*" }
        Method {
            name: "wgsForScreen"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "screenPos"; type: "QPointF" }
        }
        Method {
            name: "screenForWgs"
            type: "QPointF"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "matchedLocations"
            type: "GeneralMagic::LandmarkList*"
            Parameter { name: "screenPos"; type: "QPointF" }
        }
        Method {
            name: "highlightLandmark"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
            Parameter { name: "innerColor"; type: "QColor" }
            Parameter { name: "outerColor"; type: "QColor" }
        }
        Method {
            name: "highlightLandmark"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
            Parameter { name: "innerColor"; type: "QColor" }
        }
        Method {
            name: "highlightLandmark"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
        }
        Method {
            name: "highlightLandmark"
            Parameter { name: "landmark"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Method {
            name: "highlightLandmarkList"
            Parameter { name: "list"; type: "GeneralMagic::LandmarkModel"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
            Parameter { name: "innerColor"; type: "QColor" }
            Parameter { name: "outerColor"; type: "QColor" }
        }
        Method {
            name: "highlightLandmarkList"
            Parameter { name: "list"; type: "GeneralMagic::LandmarkModel"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
            Parameter { name: "innerColor"; type: "QColor" }
        }
        Method {
            name: "highlightLandmarkList"
            Parameter { name: "list"; type: "GeneralMagic::LandmarkModel"; isPointer: true }
            Parameter { name: "options"; type: "GeneralMagic::MapView::HighlightOptions" }
        }
        Method {
            name: "highlightLandmarkList"
            Parameter { name: "list"; type: "GeneralMagic::LandmarkModel"; isPointer: true }
        }
        Method { name: "hideHighlights" }
        Method {
            name: "setMapStyleBuffer"
            Parameter { name: "mapStyleBuffer"; type: "QByteArray" }
        }
    }
    Component {
        name: "GeneralMagic::MapViewExtensions"
        prototype: "QObject"
        exports: ["GeneralMagic/MapViewExtensions 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "minimumAllowedZoomLevel"; type: "int" }
        Property { name: "maximumAllowedZoomLevel"; type: "int" }
    }
    Component {
        name: "GeneralMagic::Marker"
        prototype: "QObject"
        exports: ["GeneralMagic/Marker 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "uid"; type: "string"; isReadonly: true }
        Property { name: "label"; type: "string" }
        Property { name: "length"; type: "int"; isReadonly: true }
        Property {
            name: "area"
            type: "GeneralMagic::GeographicRectangle"
            isReadonly: true
            isPointer: true
        }
        Method {
            name: "append"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "get"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "idx"; type: "int" }
        }
        Method {
            name: "insert"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "update"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "remove"
            Parameter { name: "idx"; type: "int" }
        }
        Method { name: "clear" }
    }
    Component {
        name: "GeneralMagic::MarkerCollection"
        prototype: "QObject"
        exports: ["GeneralMagic/MarkerCollection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "listCount"; type: "int"; isReadonly: true }
        Method {
            name: "appendList"
            Parameter { name: "list"; type: "GeneralMagic::MarkerList"; isPointer: true }
            Parameter { name: "rendererSettings"; type: "GeneralMagic::MarkerListRenderSettings" }
        }
        Method {
            name: "removeList"
            Parameter { name: "idx"; type: "int" }
        }
        Method { name: "clear" }
        Method {
            name: "getList"
            type: "GeneralMagic::MarkerList*"
            Parameter { name: "idx"; type: "int" }
        }
        Method {
            name: "getExtendedList"
            type: "GeneralMagic::MarkerExtendedList*"
            Parameter { name: "type"; type: "GeneralMagic::MarkerList::Type" }
        }
        Method {
            name: "renderSettings"
            type: "GeneralMagic::MarkerListRenderSettings"
            Parameter { name: "idx"; type: "int" }
        }
        Method {
            name: "setRenderSettings"
            Parameter { name: "idx"; type: "int" }
            Parameter { name: "newRenderSettings"; type: "MarkerListRenderSettings" }
        }
        Method { name: "saveToData"; type: "QByteArray" }
        Method {
            name: "loadFromData"
            type: "bool"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "saveToFile"
            type: "bool"
            Parameter { name: "url"; type: "QUrl" }
        }
        Method {
            name: "loadFromFile"
            type: "bool"
            Parameter { name: "url"; type: "QUrl" }
        }
    }
    Component {
        name: "GeneralMagic::MarkerExtendedList"
        prototype: "GeneralMagic::MarkerList"
        exports: ["GeneralMagic/MarkerExtendedList 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method {
            name: "append"
            Parameter { name: "marker"; type: "GeneralMagic::Marker"; isPointer: true }
            Parameter { name: "renderSettings"; type: "GeneralMagic::MarkerRenderSettings" }
        }
        Method {
            name: "insert"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "marker"; type: "GeneralMagic::Marker"; isPointer: true }
            Parameter { name: "renderSettings"; type: "GeneralMagic::MarkerRenderSettings" }
        }
    }
    Component {
        name: "GeneralMagic::MarkerList"
        prototype: "QObject"
        exports: ["GeneralMagic/MarkerList 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "Point": 0,
                "Polyline": 1,
                "Polygon": 2
            }
        }
        Property { name: "uid"; type: "string"; isReadonly: true }
        Property { name: "label"; type: "string" }
        Property { name: "length"; type: "int"; isReadonly: true }
        Property {
            name: "area"
            type: "GeneralMagic::GeographicRectangle"
            isReadonly: true
            isPointer: true
        }
        Method {
            name: "get"
            type: "GeneralMagic::Marker*"
            Parameter { name: "idx"; type: "int" }
        }
        Method {
            name: "append"
            Parameter { name: "marker"; type: "GeneralMagic::Marker"; isPointer: true }
        }
        Method {
            name: "insert"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "marker"; type: "GeneralMagic::Marker"; isPointer: true }
        }
        Method {
            name: "remove"
            Parameter { name: "idx"; type: "int" }
        }
        Method { name: "clear" }
        Method { name: "saveToData"; type: "QByteArray" }
        Method {
            name: "loadFromData"
            type: "bool"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "saveToFile"
            type: "bool"
            Parameter { name: "url"; type: "QUrl" }
        }
        Method {
            name: "loadFromFile"
            type: "bool"
            Parameter { name: "url"; type: "QUrl" }
        }
    }
    Component {
        name: "GeneralMagic::MarkerListRenderSettings"
        prototype: "GeneralMagic::MarkerRenderSettings"
        exports: ["GeneralMagic/MarkerListRenderSettings 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "pointsGroupingZoomLevel"; type: "int" }
        Property { name: "lowDensityPointsGroupIcon"; type: "GeneralMagic::Icon" }
        Property { name: "lowDensityPointsGroupMaxCount"; type: "int" }
        Property { name: "mediumDensityPointsGroupIcon"; type: "GeneralMagic::Icon" }
        Property { name: "mediumDensityPointsGroupMaxCount"; type: "int" }
        Property { name: "highDensityPointsGroupIcon"; type: "GeneralMagic::Icon" }
        Property { name: "buildPointsGroupConfig"; type: "bool" }
        Property { name: "labelGroupTextColor"; type: "QColor" }
        Property { name: "labelGroupTextHeightMM"; type: "double" }
    }
    Component {
        name: "GeneralMagic::MarkerMatcher"
        exports: ["GeneralMagic/MarkerMatcher 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "marker"; type: "GeneralMagic::Marker"; isReadonly: true; isPointer: true }
        Property {
            name: "markerList"
            type: "GeneralMagic::MarkerList"
            isReadonly: true
            isPointer: true
        }
        Property { name: "index"; type: "int"; isReadonly: true }
        Property { name: "segment"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "GeneralMagic::MarkerList::Type"; isReadonly: true }
        Property { name: "distance"; type: "int"; isReadonly: true }
        Property {
            name: "coordinates"
            type: "GeneralMagic::Coordinates"
            isReadonly: true
            isPointer: true
        }
    }
    Component {
        name: "GeneralMagic::MarkerRenderSettings"
        exports: ["GeneralMagic/MarkerRenderSettings 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "LabelingModes"
            values: {
                "None": 0,
                "Item": 1,
                "Group": 2,
                "ItemCenter": 4,
                "GroupCenter": 8,
                "FitImage": 16
            }
        }
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Property { name: "icon"; type: "GeneralMagic::Icon" }
        Property { name: "polylineInnerColor"; type: "QColor" }
        Property { name: "polylineOuterColor"; type: "QColor" }
        Property { name: "polygonFillColor"; type: "QColor" }
        Property { name: "labelTextColor"; type: "QColor" }
        Property { name: "polylineInnerSizeMM"; type: "double" }
        Property { name: "polylineOuterSizeMM"; type: "double" }
        Property { name: "labelTextHeightMM"; type: "double" }
        Property { name: "imageSize"; type: "double" }
        Property { name: "labelingMode"; type: "LabelingModes" }
    }
    Component {
        name: "GeneralMagic::NavigationInstruction"
        prototype: "GeneralMagic::NavigationInstructionBase"
        exports: ["GeneralMagic/NavigationInstruction 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "DriveSide"
            values: {
                "Left": 0,
                "Right": 1
            }
        }
        Enum {
            name: "Event"
            values: {
                "NotAvailable": 0,
                "Straight": 1,
                "Right": 2,
                "Right1": 3,
                "Right2": 4,
                "Left": 5,
                "Left1": 6,
                "Left2": 7,
                "LightLeft": 8,
                "LightLeft1": 9,
                "LightLeft2": 10,
                "LightRight": 11,
                "LightRight1": 12,
                "LightRight2": 13,
                "SharpRight": 14,
                "SharpRight1": 15,
                "SharpRight2": 16,
                "SharpLeft": 17,
                "SharpLeft1": 18,
                "SharpLeft2": 19,
                "RoundaboutExitRight": 20,
                "Roundabout": 21,
                "RoundRight": 22,
                "RoundLeft": 23,
                "ExitRight": 24,
                "ExitRight1": 25,
                "ExitRight2": 26,
                "InfoGeneric": 27,
                "DriveOn": 28,
                "ExitNr": 29,
                "ExitLeft": 30,
                "ExitLeft1": 31,
                "ExitLeft2": 32,
                "RoundaboutExitLeft": 33,
                "IntoRoundabout": 34,
                "StayOn": 35,
                "BoatFerry": 36,
                "RailFerry": 37,
                "InfoLane": 38,
                "InfoSign": 39,
                "LeftRight": 40,
                "RightLeft": 41,
                "KeepLeft": 42,
                "KeepRight": 43,
                "Start": 44,
                "Intermediate": 45,
                "Stop": 46
            }
        }
        Property { name: "currentCountryCodeISO"; type: "string"; isReadonly: true }
        Property { name: "currentStreetSpeedLimit"; type: "double"; isReadonly: true }
        Property { name: "currentStreetName"; type: "string"; isReadonly: true }
        Property { name: "nextCountryCodeISO"; type: "string"; isReadonly: true }
        Property { name: "nextStreetName"; type: "string"; isReadonly: true }
        Property { name: "hasNextTurnInfo"; type: "bool"; isReadonly: true }
        Property { name: "nextTurnIcon"; type: "GeneralMagic::Icon"; isReadonly: true }
        Property { name: "nextTurnEvent"; type: "Event"; isReadonly: true }
        Property { name: "nextTurnDynamicIcon"; type: "GeneralMagic::DynamicIcon"; isReadonly: true }
        Property { name: "nextTurnInstruction"; type: "string"; isReadonly: true }
        Property { name: "hasNextNextTurnInfo"; type: "bool"; isReadonly: true }
        Property { name: "nextNextTurnIcon"; type: "GeneralMagic::Icon"; isReadonly: true }
        Property { name: "nextNextTurnEvent"; type: "Event"; isReadonly: true }
        Property {
            name: "nextNextTurnDynamicIcon"
            type: "GeneralMagic::DynamicIcon"
            isReadonly: true
        }
        Property { name: "distanceToNextNextTurn"; type: "double"; isReadonly: true }
        Property { name: "timeToNextNextTurn"; type: "int"; isReadonly: true }
        Property {
            name: "currentPosition"
            type: "GeneralMagic::Position"
            isReadonly: true
            isPointer: true
        }
        Property { name: "segmentIndex"; type: "int"; isReadonly: true }
        Property { name: "instructionIndex"; type: "int"; isReadonly: true }
        Property { name: "driveSide"; type: "DriveSide"; isReadonly: true }
        Property { name: "currentRoadInformationList"; type: "QVariantList"; isReadonly: true }
        Property { name: "nextRoadInformationList"; type: "QVariantList"; isReadonly: true }
        Method {
            name: "nextSpeedLimitVariation"
            type: "GeneralMagic::NextSpeedLimit"
            Parameter { name: "distance"; type: "int" }
        }
        Method { name: "nextSpeedLimitVariation"; type: "GeneralMagic::NextSpeedLimit" }
    }
    Component {
        name: "GeneralMagic::NavigationInstructionBase"
        Property { name: "hasSignpostInfo"; type: "bool"; isReadonly: true }
        Property { name: "distanceToNextTurn"; type: "double"; isReadonly: true }
        Property { name: "timeToNextTurn"; type: "int"; isReadonly: true }
        Property { name: "remainingTravelTime"; type: "int"; isReadonly: true }
        Property { name: "remainingTravelDistance"; type: "double"; isReadonly: true }
        Property { name: "remainingTravelTimeToNextWaypoint"; type: "int"; isReadonly: true }
        Property { name: "remainingTravelDistanceToNextWaypoint"; type: "double"; isReadonly: true }
        Property { name: "traveledDistance"; type: "double"; isReadonly: true }
        Property { name: "traveledTime"; type: "int"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::NavigationService"
        prototype: "QObject"
        exports: ["GeneralMagic/NavigationService 2.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Status"
            values: {
                "Running": 0,
                "WaitingRoute": 1,
                "WaitingGPS": 2,
                "Stopped": 3
            }
        }
        Property { name: "dataSource"; type: "GeneralMagic::DataSource"; isPointer: true }
        Property { name: "active"; type: "bool" }
        Property { name: "route"; type: "GeneralMagic::Route" }
        Property {
            name: "currentInstruction"
            type: "GeneralMagic::NavigationInstruction"
            isReadonly: true
        }
        Property { name: "simulation"; type: "bool" }
        Property { name: "simulationSpeedMultiplier"; type: "float" }
        Property { name: "simulationMinSpeedMultiplier"; type: "float"; isReadonly: true }
        Property { name: "simulationMaxSpeedMultiplier"; type: "float"; isReadonly: true }
        Property { name: "status"; type: "Status"; isReadonly: true }
        Signal { name: "started" }
        Signal {
            name: "waypointReached"
            Parameter { name: "waypoint"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Signal {
            name: "navigationRouteUpdated"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Signal {
            name: "destinationReached"
            Parameter { name: "waypoint"; type: "GeneralMagic::Landmark"; isPointer: true }
        }
        Signal {
            name: "navigationError"
            Parameter { name: "error"; type: "GeneralMagic::Result" }
        }
        Signal {
            name: "betterRouteFound"
            Parameter { name: "route"; type: "Route" }
            Parameter { name: "travelTime"; type: "int" }
            Parameter { name: "delay"; type: "int" }
            Parameter { name: "timeGain"; type: "int" }
        }
        Signal { name: "betterRouteInvalidated" }
        Signal {
            name: "routeChanged"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Signal {
            name: "currentInstructionChanged"
            Parameter { name: "navigationInstruction"; type: "GeneralMagic::NavigationInstruction" }
        }
        Signal {
            name: "simulationChanged"
            Parameter { name: "simulation"; type: "bool" }
        }
        Signal {
            name: "simulationSpeedMultiplierChanged"
            Parameter { name: "speedMultiplier"; type: "float" }
        }
        Signal {
            name: "dataSourceChanged"
            Parameter { name: "dataSource"; type: "GeneralMagic::DataSource"; isPointer: true }
        }
        Method {
            name: "setRoute"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "setSimulation"
            Parameter { name: "simulation"; type: "bool" }
        }
        Method {
            name: "setSimulationSpeedMultiplier"
            Parameter { name: "speedMultiplier"; type: "float" }
        }
        Method { name: "start"; type: "bool" }
        Method { name: "stop" }
    }
    Component {
        name: "GeneralMagic::NextSpeedLimit"
        exports: ["GeneralMagic/NextSpeedLimit 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property {
            name: "coordinates"
            type: "GeneralMagic::Coordinates"
            isReadonly: true
            isPointer: true
        }
        Property { name: "distance"; type: "int"; isReadonly: true }
        Property { name: "speed"; type: "double"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::Path"
        exports: ["GeneralMagic/Path 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Method { name: "reversed"; type: "GeneralMagic::Path" }
    }
    Component {
        name: "GeneralMagic::PathCollection"
        prototype: "QObject"
        exports: ["GeneralMagic/PathCollection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Signal { name: "added" }
        Signal { name: "removed" }
        Method { name: "length"; type: "int" }
        Method {
            name: "get"
            type: "GeneralMagic::Path"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "path"; type: "GeneralMagic::Path" }
            Parameter { name: "border"; type: "QColor" }
            Parameter { name: "fill"; type: "QColor" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "path"; type: "GeneralMagic::Path" }
            Parameter { name: "border"; type: "QColor" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "path"; type: "GeneralMagic::Path" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "path"; type: "GeneralMagic::Path" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "index"; type: "int" }
        }
        Method { name: "clear" }
    }
    Component {
        name: "GeneralMagic::Position"
        prototype: "GeneralMagic::Coordinates"
        exports: ["GeneralMagic/Position 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "speed"; type: "double" }
        Property { name: "speedAccuracy"; type: "double" }
        Property { name: "course"; type: "double" }
        Property { name: "courseAccuracy"; type: "double" }
        Property { name: "timeStamp"; type: "QDateTime" }
        Signal {
            name: "speedChanged"
            Parameter { name: "speed"; type: "double" }
        }
        Signal {
            name: "timeStampChanged"
            Parameter { name: "timeStamp"; type: "QDateTime" }
        }
        Signal {
            name: "courseChanged"
            Parameter { name: "course"; type: "double" }
        }
        Signal {
            name: "speedChangedAccuracy"
            Parameter { name: "speedAccuracy"; type: "double" }
        }
        Signal {
            name: "courseChangedAccuracy"
            Parameter { name: "courseAccuracy"; type: "double" }
        }
        Method {
            name: "setSpeed"
            Parameter { name: "speed"; type: "double" }
        }
        Method {
            name: "setCourse"
            Parameter { name: "course"; type: "double" }
        }
        Method {
            name: "setTimeStamp"
            Parameter { name: "timeStamp"; type: "QDateTime" }
        }
        Method {
            name: "setSpeedAccuracy"
            Parameter { name: "speedAccuracy"; type: "double" }
        }
        Method {
            name: "setCourseAccuracy"
            Parameter { name: "courseAccuracy"; type: "double" }
        }
    }
    Component {
        name: "GeneralMagic::PublicTransportInformationBase"
        prototype: "QObject"
        exports: ["GeneralMagic/PublicTransportInformationBase 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "name"; type: "string"; isReadonly: true }
        Property { name: "platformCode"; type: "string"; isReadonly: true }
        Property { name: "arrivalTime"; type: "QDateTime"; isReadonly: true }
        Property { name: "departureTime"; type: "QDateTime"; isReadonly: true }
        Property { name: "hasWheelchairSupport"; type: "bool"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::PublicTransportPreferences"
        prototype: "QObject"
        exports: ["GeneralMagic/PublicTransportPreferences 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "SortingStrategy"
            values: {
                "BestTime": 0,
                "LeastWalk": 1,
                "LeastTransfers": 2
            }
        }
        Enum {
            name: "Algorithm"
            values: {
                "DepartureTime": 0,
                "ArrivalTime": 1
            }
        }
        Enum {
            name: "Type"
            values: {
                "None": 0,
                "Bus": 1,
                "Underground": 2,
                "Railway": 4,
                "Tram": 8,
                "Water": 16,
                "Misc": 32,
                "SharedBike": 64,
                "SharedCar": 128,
                "SharedScooter": 256
            }
        }
        Enum {
            name: "Types"
            values: {
                "None": 0,
                "Bus": 1,
                "Underground": 2,
                "Railway": 4,
                "Tram": 8,
                "Water": 16,
                "Misc": 32,
                "SharedBike": 64,
                "SharedCar": 128,
                "SharedScooter": 256
            }
        }
        Property { name: "usingBike"; type: "bool" }
        Property { name: "usingWheelchair"; type: "bool" }
        Property { name: "sortingStrategy"; type: "SortingStrategy" }
        Property { name: "algorithm"; type: "Algorithm" }
        Property { name: "targetTime"; type: "QDateTime" }
        Property { name: "types"; type: "Types" }
        Property { name: "minimumTransferTimeInMinutes"; type: "uint" }
        Property { name: "maximumTransferTimeInMinutes"; type: "uint" }
        Property { name: "maximumWalkDistance"; type: "uint" }
        Signal { name: "typeChanged" }
    }
    Component {
        name: "GeneralMagic::PublicTransportRouteInformation"
        prototype: "QObject"
        exports: ["GeneralMagic/PublicTransportRouteInformation 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "fare"; type: "string"; isReadonly: true }
        Property { name: "frequency"; type: "int"; isReadonly: true }
        Property { name: "allConditionsMet"; type: "bool"; isReadonly: true }
        Property { name: "ticketInformations"; type: "QVariantList"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::PublicTransportSegmentInformation"
        prototype: "GeneralMagic::PublicTransportInformationBase"
        exports: ["GeneralMagic/PublicTransportSegmentInformation 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "TransitType"
            values: {
                "Walk": 0,
                "Bus": 1,
                "Underground": 2,
                "Railway": 3,
                "Tram": 4,
                "WaterTransport": 5,
                "Other": 6,
                "SharedBike": 7,
                "SharedScooter": 8,
                "SharedCar": 9,
                "Unknown": 10
            }
        }
        Enum {
            name: "RealtimeStatus"
            values: {
                "Delay": 0,
                "OnTime": 1,
                "NotAvailable": 2
            }
        }
        Property { name: "shortName"; type: "string"; isReadonly: true }
        Property { name: "routeUrl"; type: "string"; isReadonly: true }
        Property { name: "agencyName"; type: "string"; isReadonly: true }
        Property { name: "agencyPhone"; type: "string"; isReadonly: true }
        Property { name: "agencyUrl"; type: "string"; isReadonly: true }
        Property { name: "agencyFareUrl"; type: "string"; isReadonly: true }
        Property { name: "lineFrom"; type: "string"; isReadonly: true }
        Property { name: "lineTowards"; type: "string"; isReadonly: true }
        Property { name: "arrivalDelay"; type: "QTime"; isReadonly: true }
        Property { name: "departureDelay"; type: "QTime"; isReadonly: true }
        Property { name: "hasBicycleSupport"; type: "bool"; isReadonly: true }
        Property { name: "stayOnSameTransit"; type: "bool"; isReadonly: true }
        Property { name: "transitType"; type: "TransitType"; isReadonly: true }
        Property { name: "realtimeStatus"; type: "RealtimeStatus"; isReadonly: true }
        Property { name: "lineId"; type: "int"; isReadonly: true }
        Property { name: "lineColor"; type: "QColor"; isReadonly: true }
        Property { name: "lineTextColor"; type: "QColor"; isReadonly: true }
        Property { name: "isSignificant"; type: "bool"; isReadonly: true }
        Property { name: "isStationWalk"; type: "bool"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::RoadInfo"
        exports: ["GeneralMagic/RoadInfo 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "ShieldType"
            values: {
                "Invalid": 0,
                "County": 1,
                "State": 2,
                "Federal": 3,
                "Interstate": 4,
                "RS_4": 5,
                "RS_5": 6,
                "RS_6": 7,
                "RS_7": 8
            }
        }
        Property { name: "shieldType"; type: "ShieldType" }
        Property { name: "name"; type: "string" }
    }
    Component {
        name: "GeneralMagic::RoadTypeSection"
        exports: ["GeneralMagic/RoadTypeSection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "Motorways": 0,
                "StateRoad": 1,
                "Road": 2,
                "Street": 3,
                "Cycleway": 4,
                "Path": 5,
                "SingleTrack": 6
            }
        }
        Property { name: "startDistance"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "Type"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::Route"
        prototype: "GeneralMagic::RouteBase"
        exports: ["GeneralMagic/Route 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "Fastest": 0,
                "Shortest": 1,
                "Economic": 2
            }
        }
        Enum {
            name: "TransportMode"
            values: {
                "Car": 0,
                "Lorry": 1,
                "Pedestrian": 2,
                "Bicycle": 3,
                "Public": 4
            }
        }
        Property { name: "type"; type: "Type"; isReadonly: true }
        Property { name: "transportMode"; type: "TransportMode"; isReadonly: true }
        Property { name: "avoidTraffic"; type: "bool"; isReadonly: true }
        Property { name: "ferryConnections"; type: "bool"; isReadonly: true }
        Property { name: "tollRoads"; type: "bool"; isReadonly: true }
        Property { name: "hasTerrainProfile"; type: "bool"; isReadonly: true }
        Property {
            name: "terrainProfile"
            type: "GeneralMagic::RouteTerrainProfile"
            isReadonly: true
            isPointer: true
        }
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Property { name: "segments"; type: "QVariantList"; isReadonly: true }
        Property { name: "allInstructions"; type: "QVariantList"; isReadonly: true }
        Property { name: "hasPublicTransport"; type: "bool"; isReadonly: true }
        Property {
            name: "publicTransport"
            type: "GeneralMagic::PublicTransportRouteInformation"
            isReadonly: true
            isPointer: true
        }
    }
    Component {
        name: "GeneralMagic::RouteBase"
        Property { name: "waypoints"; type: "GeneralMagic::Landmark"; isList: true; isReadonly: true }
        Property { name: "length"; type: "int"; isReadonly: true }
        Property { name: "travelTime"; type: "int"; isReadonly: true }
        Property { name: "incursCosts"; type: "bool"; isReadonly: true }
        Property { name: "summary"; type: "string"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::RouteCollection"
        prototype: "QObject"
        exports: ["GeneralMagic/RouteCollection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "length"; type: "int"; isReadonly: true }
        Property { name: "mainRoute"; type: "GeneralMagic::Route" }
        Signal { name: "added" }
        Signal { name: "removed" }
        Signal {
            name: "mainRouteChanged"
            Parameter { name: "mainRoute"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "set"
            Parameter { name: "routes"; type: "QJSValue" }
            Parameter { name: "mainRouteIndex"; type: "uint" }
        }
        Method {
            name: "set"
            Parameter { name: "routes"; type: "QJSValue" }
        }
        Method { name: "length"; type: "int" }
        Method {
            name: "get"
            type: "GeneralMagic::Route"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "mainRoute"; type: "bool" }
            Parameter { name: "label"; type: "string" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "mainRoute"; type: "bool" }
        }
        Method {
            name: "add"
            type: "bool"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "route"; type: "Route" }
        }
        Method {
            name: "remove"
            type: "bool"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "clear"
            Parameter { name: "keepMainRoute"; type: "bool" }
        }
        Method { name: "clear" }
        Method {
            name: "setMainRoute"
            Parameter { name: "mainRoute"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "routeRenderSettings"
            type: "GeneralMagic::RouteRenderSettings"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "setRouteRenderSettings"
            Parameter { name: "index"; type: "int" }
            Parameter { name: "settings"; type: "GeneralMagic::RouteRenderSettings" }
        }
        Method {
            name: "routeRenderSettings"
            type: "GeneralMagic::RouteRenderSettings"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
        }
        Method {
            name: "setRouteRenderSettings"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "settings"; type: "GeneralMagic::RouteRenderSettings" }
        }
    }
    Component {
        name: "GeneralMagic::RouteInstruction"
        prototype: "GeneralMagic::NavigationInstructionBase"
        exports: ["GeneralMagic/RouteInstruction 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "countryCode"; type: "string"; isReadonly: true }
        Property { name: "hasTurnInfo"; type: "bool"; isReadonly: true }
        Property { name: "turnIcon"; type: "GeneralMagic::Icon"; isReadonly: true }
        Property { name: "turnDynamicIcon"; type: "GeneralMagic::DynamicIcon"; isReadonly: true }
        Property { name: "turnInstruction"; type: "string"; isReadonly: true }
        Property { name: "hasFollowRoadInfo"; type: "bool"; isReadonly: true }
        Property { name: "followRoadInstruction"; type: "string"; isReadonly: true }
        Property {
            name: "coordinates"
            type: "GeneralMagic::Coordinates"
            isReadonly: true
            isPointer: true
        }
        Property { name: "isFerry"; type: "bool"; isReadonly: true }
        Property { name: "isTollRoad"; type: "bool"; isReadonly: true }
        Property { name: "hasPublicTransport"; type: "bool"; isReadonly: true }
        Property {
            name: "publicTransport"
            type: "GeneralMagic::PublicTransportInformationBase"
            isReadonly: true
            isPointer: true
        }
    }
    Component {
        name: "GeneralMagic::RouteRenderSettings"
        exports: ["GeneralMagic/RouteRenderSettings 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "RenderOptions"
            values: {
                "Main": 1,
                "ShowTraffic": 2,
                "ShowTurnArrows": 4,
                "ShowWaypoints": 8,
                "ShowHighlights": 16
            }
        }
        Property { name: "renderOptions"; type: "RenderOptions" }
        Property { name: "innerColor"; type: "QColor" }
        Property { name: "outerColor"; type: "QColor" }
        Property { name: "innerSizeMM"; type: "double" }
        Property { name: "outerSizeMM"; type: "double" }
        Property { name: "textColor"; type: "QColor" }
        Property { name: "textSizeMM"; type: "double" }
        Property { name: "imageSizeMM"; type: "double" }
        Property { name: "traveledInnerColor"; type: "QColor" }
        Property { name: "turnArrowInnerColor"; type: "QColor" }
        Property { name: "turnArrowOuterColor"; type: "QColor" }
        Property { name: "turnArrowInnerSizeMM"; type: "double" }
        Property { name: "turnArrowOuterSizeMM"; type: "double" }
        Property { name: "fillColor"; type: "QColor" }
        Property { name: "waypointTextSizeMM"; type: "double" }
        Property { name: "waypointTextInnerColor"; type: "QColor" }
        Property { name: "waypointTextOuterColor"; type: "QColor" }
    }
    Component {
        name: "GeneralMagic::RouteSegment"
        prototype: "GeneralMagic::RouteBase"
        exports: ["GeneralMagic/RouteSegment 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "instructions"; type: "QVariantList"; isReadonly: true }
        Property { name: "isCommon"; type: "bool"; isReadonly: true }
        Property { name: "hasPublicTransport"; type: "bool"; isReadonly: true }
        Property {
            name: "publicTransport"
            type: "GeneralMagic::PublicTransportSegmentInformation"
            isReadonly: true
            isPointer: true
        }
    }
    Component {
        name: "GeneralMagic::RouteTerrainProfile"
        prototype: "QObject"
        exports: ["GeneralMagic/RouteTerrainProfile 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "minElevation"; type: "float"; isReadonly: true }
        Property { name: "maxElevation"; type: "float"; isReadonly: true }
        Property { name: "totalUp"; type: "float"; isReadonly: true }
        Property { name: "totalDown"; type: "float"; isReadonly: true }
        Property { name: "climbSections"; type: "QVariantList"; isReadonly: true }
        Property { name: "surfaceSections"; type: "QVariantList"; isReadonly: true }
        Property { name: "roadTypeSections"; type: "QVariantList"; isReadonly: true }
        Method {
            name: "totalUpBetween"
            type: "float"
            Parameter { name: "distBegin"; type: "int" }
            Parameter { name: "distEnd"; type: "int" }
        }
        Method {
            name: "totalDownBetween"
            type: "float"
            Parameter { name: "distBegin"; type: "int" }
            Parameter { name: "distEnd"; type: "int" }
        }
        Method {
            name: "elevationSamples"
            type: "GeneralMagic::TerrainElevationSamples"
            Parameter { name: "countSamples"; type: "int" }
        }
        Method {
            name: "elevationSamples"
            type: "GeneralMagic::TerrainElevationSamples"
            Parameter { name: "countSamples"; type: "int" }
            Parameter { name: "distBegin"; type: "int" }
            Parameter { name: "distEnd"; type: "int" }
        }
        Method {
            name: "steepSections"
            type: "QVariantList"
            Parameter { name: "categories"; type: "QVariantList" }
        }
    }
    Component {
        name: "GeneralMagic::RoutingService"
        prototype: "QObject"
        exports: ["GeneralMagic/RoutingService 2.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "ResultDetails"
            values: {
                "Full": 0,
                "TimeDistance": 1,
                "Path": 2
            }
        }
        Enum {
            name: "AlternativesSchema"
            values: {
                "Default": 0,
                "Never": 1,
                "Always": 2
            }
        }
        Property { name: "result"; type: "GeneralMagic::Result"; isReadonly: true }
        Property { name: "waypoints"; type: "GeneralMagic::LandmarkList"; isPointer: true }
        Property { name: "routeList"; type: "QVariantList"; isReadonly: true }
        Property { name: "avoidTraffic"; type: "bool" }
        Property { name: "alternativeRoutesBalancedSorting"; type: "bool" }
        Property { name: "type"; type: "GeneralMagic::Route::Type" }
        Property { name: "transportMode"; type: "GeneralMagic::Route::TransportMode" }
        Property { name: "buildTerrainProfile"; type: "bool" }
        Property { name: "routeRanges"; type: "QJsonArray" }
        Property { name: "routeRangesQuality"; type: "int" }
        Property { name: "resultDetails"; type: "ResultDetails" }
        Property { name: "alternativesSchema"; type: "AlternativesSchema" }
        Property { name: "strictTrackFollow"; type: "bool" }
        Property {
            name: "pedestrianPreferences"
            type: "GeneralMagic::PedestrianPreferences"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "carPreferences"
            type: "GeneralMagic::CarPreferences"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "publicTransportPreferences"
            type: "GeneralMagic::PublicTransportPreferences"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "bikePreferences"
            type: "GeneralMagic::BikePreferences"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "truckPreferences"
            type: "GeneralMagic::TruckPreferences"
            isReadonly: true
            isPointer: true
        }
        Signal {
            name: "started"
            Parameter { name: "hasProgress"; type: "bool" }
        }
        Signal {
            name: "progress"
            Parameter { name: "percentage"; type: "int" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
            Parameter { name: "hint"; type: "string" }
        }
        Signal {
            name: "finished"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
        }
        Signal {
            name: "waypointsChanged"
            Parameter { name: "waypoints"; type: "GeneralMagic::LandmarkList"; isPointer: true }
        }
        Method { name: "update" }
        Method { name: "cancel" }
        Method {
            name: "setWaypoints"
            Parameter { name: "waypoints"; type: "GeneralMagic::LandmarkList"; isPointer: true }
        }
    }
    Component {
        name: "GeneralMagic::SearchService"
        prototype: "GeneralMagic::LandmarkModel"
        exports: ["GeneralMagic/SearchService 2.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "filter"; type: "string" }
        Property { name: "route"; type: "GeneralMagic::Route" }
        Property { name: "limit"; type: "int" }
        Property { name: "exactMatch"; type: "bool" }
        Property { name: "searchAddresses"; type: "bool" }
        Property { name: "searchMapPOIs"; type: "bool" }
        Property {
            name: "landmarkStoresCollection"
            type: "GeneralMagic::LandmarkStoresCollection"
            isReadonly: true
            isPointer: true
        }
        Property { name: "referencePoint"; type: "GeneralMagic::Coordinates"; isPointer: true }
        Property { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        Property { name: "searchOnlyOnboard"; type: "bool" }
        Property { name: "thresholdDistance"; type: "int" }
        Signal {
            name: "searchStarted"
            Parameter { name: "hasProgress"; type: "bool" }
        }
        Signal {
            name: "searchProgress"
            Parameter { name: "progress"; type: "int" }
        }
        Signal {
            name: "searchCompleted"
            Parameter { name: "result"; type: "GeneralMagic::Result" }
        }
        Signal { name: "maxMatchesChanged" }
        Method {
            name: "search"
            type: "bool"
            Parameter { name: "filter"; type: "string" }
        }
        Method { name: "search"; type: "bool" }
        Method {
            name: "freeTextSearch"
            type: "bool"
            Parameter { name: "filter"; type: "string" }
        }
        Method {
            name: "searchAlongRoute"
            type: "bool"
            Parameter { name: "route"; type: "GeneralMagic::Route" }
            Parameter { name: "filter"; type: "string" }
        }
        Method {
            name: "reverseGeocode"
            type: "bool"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method { name: "cancel" }
    }
    Component {
        name: "GeneralMagic::ServicesManager"
        prototype: "GeneralMagic::ThreadSafeQObject"
        exports: ["GeneralMagic/ServicesManager 2.0"]
        isCreatable: false
        isSingleton: true
        exportMetaObjectRevisions: [0]
        Enum {
            name: "LogLevel"
            values: {
                "Verbose": 0,
                "Debug": 1,
                "Info": 2,
                "Warn": 3,
                "Error": 4,
                "Fatal": 5,
                "Silent": 6
            }
        }
        Property { name: "logLevel"; type: "LogLevel" }
        Property {
            name: "settings"
            type: "GeneralMagic::ServicesSettings"
            isReadonly: true
            isPointer: true
        }
        Property { name: "timerInterval"; type: "int" }
        Property {
            name: "iconDatabase"
            type: "GeneralMagic::IconDatabase"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "landmarkStoreManager"
            type: "GeneralMagic::LandmarkStoreManager"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "mapDetails"
            type: "GeneralMagic::MapDetails"
            isReadonly: true
            isPointer: true
        }
        Property { name: "mapScene"; type: "GeneralMagic::MapScene"; isReadonly: true; isPointer: true }
        Property {
            name: "dataSource"
            type: "GeneralMagic::DataSource"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "dataSourceRecorder"
            type: "GeneralMagic::DataSourceRecorder"
            isReadonly: true
            isPointer: true
        }
        Property { name: "useSound"; type: "bool" }
        Property { name: "soundVolume"; type: "double" }
        Property { name: "isVoiceInstructionPlaying"; type: "bool"; isReadonly: true }
        Property { name: "sdkVersion"; type: "string"; isReadonly: true }
        Signal { name: "deviceIdChanged" }
        Signal {
            name: "pathLoaded"
            Parameter { name: "operationId"; type: "int" }
            Parameter { name: "path"; type: "GeneralMagic::Path" }
        }
        Signal { name: "dataSourceTypeChanged" }
        Signal { name: "voiceInstructionPlayingChanged" }
        Method { name: "createPosition"; type: "GeneralMagic::Position*" }
        Method {
            name: "createCoordinates"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "latitude"; type: "double" }
            Parameter { name: "longitude"; type: "double" }
            Parameter { name: "altitude"; type: "double" }
        }
        Method {
            name: "createCoordinates"
            type: "GeneralMagic::Coordinates*"
            Parameter { name: "latitude"; type: "double" }
            Parameter { name: "longitude"; type: "double" }
        }
        Method {
            name: "createIconFromFile"
            type: "GeneralMagic::Icon"
            Parameter { name: "filePath"; type: "QUrl" }
        }
        Method {
            name: "createIconFromData"
            type: "GeneralMagic::Icon"
            Parameter { name: "data"; type: "QByteArray" }
            Parameter { name: "format"; type: "string" }
        }
        Method {
            name: "createIconFromId"
            type: "GeneralMagic::Icon"
            Parameter { name: "id"; type: "int" }
        }
        Method {
            name: "createLandmark"
            type: "GeneralMagic::Landmark*"
            Parameter { name: "parent"; type: "QObject"; isPointer: true }
        }
        Method { name: "createLandmark"; type: "GeneralMagic::Landmark*" }
        Method { name: "createRoute"; type: "GeneralMagic::Route" }
        Method { name: "createMarker"; type: "GeneralMagic::Marker*" }
        Method {
            name: "createCirclePolygonMarker"
            type: "GeneralMagic::Marker*"
            Parameter { name: "coordinates"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "radius"; type: "int" }
        }
        Method {
            name: "createRectanglePolygonMarker"
            type: "GeneralMagic::Marker*"
            Parameter { name: "topLeft"; type: "GeneralMagic::Coordinates"; isPointer: true }
            Parameter { name: "bottomRight"; type: "GeneralMagic::Coordinates"; isPointer: true }
        }
        Method {
            name: "createMarkerList"
            type: "GeneralMagic::MarkerList*"
            Parameter { name: "type"; type: "GeneralMagic::MarkerList::Type" }
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "createMarkerList"
            type: "GeneralMagic::MarkerList*"
            Parameter { name: "type"; type: "GeneralMagic::MarkerList::Type" }
        }
        Method { name: "createMarkerRenderSettings"; type: "GeneralMagic::MarkerRenderSettings" }
        Method {
            name: "createMarkerListRenderSettings"
            type: "GeneralMagic::MarkerListRenderSettings"
        }
        Method { name: "createRouteRenderSettings"; type: "GeneralMagic::RouteRenderSettings" }
        Method {
            name: "loadPathFromGpxData"
            type: "GeneralMagic::Path"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "loadPathFromGpxFile"
            type: "GeneralMagic::Path"
            Parameter { name: "filePath"; type: "QUrl" }
        }
        Method {
            name: "asyncLoadPathFromGpxData"
            Parameter { name: "operationId"; type: "int" }
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "asyncLoadPathFromGpxFile"
            type: "bool"
            Parameter { name: "operationId"; type: "int" }
            Parameter { name: "filePath"; type: "QUrl" }
        }
        Method {
            name: "contentUpdater"
            type: "GeneralMagic::ContentUpdater*"
            Parameter { name: "type"; type: "int" }
        }
        Method { name: "dataSourceRecorder"; type: "DataSourceRecorder*" }
        Method { name: "sdkVersion"; type: "string" }
    }
    Component {
        name: "GeneralMagic::ServicesSettings"
        prototype: "QObject"
        exports: ["GeneralMagic/ServicesSettings 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "UnitSystem"
            values: {
                "Metric": 0,
                "ImperialUK": 1,
                "ImperialUS": 2
            }
        }
        Enum {
            name: "MapLanguage"
            values: {
                "AutomaticLanguage": 0,
                "NativeLanguage": 1
            }
        }
        Enum {
            name: "Reason"
            values: {
                "NeedMoreDiskSpace": 0,
                "ExpiredSDK": 1
            }
        }
        Enum {
            name: "MapSupportStatus"
            values: {
                "OldData": 0,
                "ExpiredData": 1,
                "UpToDate": 2
            }
        }
        Property { name: "unitSystem"; type: "UnitSystem" }
        Property { name: "allowInternetConnection"; type: "bool" }
        Property { name: "mapLanguage"; type: "MapLanguage" }
        Property { name: "connected"; type: "bool"; isReadonly: true }
        Property { name: "token"; type: "string" }
        Property { name: "allowResourcesUpdate"; type: "bool" }
        Signal {
            name: "connectedChanged"
            Parameter { name: "connected"; type: "bool" }
        }
        Signal { name: "worldwideRoadMapSupportEnabled" }
        Signal {
            name: "worldwideRoadMapSupportDisabled"
            Parameter { name: "reason"; type: "GeneralMagic::ServicesSettings::Reason" }
        }
        Signal {
            name: "worldwideRoadMapSupportStatus"
            Parameter { name: "status"; type: "GeneralMagic::ServicesSettings::MapSupportStatus" }
        }
        Signal { name: "resourcesReadyToDeploy" }
        Signal {
            name: "allowResourcesUpdateChanged"
            Parameter { name: "allowResourcesUpdate"; type: "bool" }
        }
        Signal {
            name: "onlineCacheSizeChange"
            Parameter { name: "size"; type: "int" }
        }
        Signal { name: "worldwideRoadMapVersionUpdated" }
        Signal { name: "worldwideRoadMapUnsupportedCapabilities" }
        Signal { name: "apiTokenRejected" }
        Signal { name: "apiTokenUpdated" }
        Method {
            name: "setVoiceByPath"
            type: "bool"
            Parameter { name: "path"; type: "QUrl" }
        }
        Method {
            name: "setToken"
            Parameter { name: "token"; type: "string" }
        }
    }
    Component {
        name: "GeneralMagic::SteepSection"
        exports: ["GeneralMagic/SteepSection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "startDistance"; type: "int"; isReadonly: true }
        Property { name: "category"; type: "int"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::SurfaceSection"
        exports: ["GeneralMagic/SurfaceSection 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "Asphalt": 0,
                "Paved": 1,
                "Unpaved": 2,
                "Unknown": 3
            }
        }
        Property { name: "startDistance"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "Type"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::TerrainElevationSamples"
        exports: ["GeneralMagic/TerrainElevationSamples 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "samples"; type: "QVector<qreal>"; isReadonly: true }
        Property { name: "resolution"; type: "float"; isReadonly: true }
    }
    Component { name: "GeneralMagic::ThreadSafeQObject"; prototype: "QObject" }
    Component {
        name: "GeneralMagic::TicketInformation"
        exports: ["GeneralMagic/TicketInformation 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "url"; type: "string"; isReadonly: true }
        Property { name: "solutionPartIndexes"; type: "QVariantList"; isReadonly: true }
    }
    Component {
        name: "GeneralMagic::TruckPreferences"
        prototype: "GeneralMagic::CarPreferences"
        exports: ["GeneralMagic/TruckPreferences 2.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "massKg"; type: "int" }
        Property { name: "heightCm"; type: "int" }
        Property { name: "lengthCm"; type: "int" }
        Property { name: "widthCm"; type: "int" }
        Property { name: "axleLoadKg"; type: "int" }
    }
    Component {
        name: "QQuickFramebufferObject"
        defaultProperty: "data"
        prototype: "QQuickItem"
        Property { name: "textureFollowsItemSize"; type: "bool" }
        Property { name: "mirrorVertically"; type: "bool" }
        Signal {
            name: "textureFollowsItemSizeChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "mirrorVerticallyChanged"
            Parameter { type: "bool" }
        }
    }
}
