# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.QtPositioning, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtPositioning`

import PySide6.QtPositioning
import PySide6.QtCore

import enum
import typing
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QGeoAddress(Shiboken.Object): ...


class QGeoAreaMonitorInfo(Shiboken.Object): ...
    def __repr__(self, /) -> str: ...


class QGeoAreaMonitorSource(PySide6.QtCore.QObject):

    areaEntered              : typing.ClassVar[Signal] = ... # areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo)
    areaExited               : typing.ClassVar[Signal] = ... # areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo)
    errorOccurred            : typing.ClassVar[Signal] = ... # errorOccurred(QGeoAreaMonitorSource::Error)
    monitorExpired           : typing.ClassVar[Signal] = ... # monitorExpired(QGeoAreaMonitorInfo)

    class AreaMonitorFeature(enum.Flag):

        PersistentAreaMonitorFeature = 0x1
        AnyAreaMonitorFeature     = 0xffffffff

    class Error(enum.Enum):

        AccessError               = 0x0
        InsufficientPositionInfo  = 0x1
        UnknownSourceError        = 0x2
        NoError                   = 0x3


class QGeoCircle(PySide6.QtPositioning.QGeoShape): ...


class QGeoCoordinate(Shiboken.Object):

    class CoordinateFormat(enum.Enum):

        Degrees                   = 0x0
        DegreesWithHemisphere     = 0x1
        DegreesMinutes            = 0x2
        DegreesMinutesWithHemisphere = 0x3
        DegreesMinutesSeconds     = 0x4
        DegreesMinutesSecondsWithHemisphere = 0x5

    class CoordinateType(enum.Enum):

        InvalidCoordinate         = 0x0
        Coordinate2D              = 0x1
        Coordinate3D              = 0x2


    def __repr__(self, /) -> str: ...


class QGeoLocation(Shiboken.Object): ...


class QGeoPath(PySide6.QtPositioning.QGeoShape): ...


class QGeoPolygon(PySide6.QtPositioning.QGeoShape): ...


class QGeoPositionInfo(Shiboken.Object):

    class Attribute(enum.Enum):

        Direction                 = 0x0
        GroundSpeed               = 0x1
        VerticalSpeed             = 0x2
        MagneticVariation         = 0x3
        HorizontalAccuracy        = 0x4
        VerticalAccuracy          = 0x5
        DirectionAccuracy         = 0x6


    def __repr__(self, /) -> str: ...


class QGeoPositionInfoSource(PySide6.QtCore.QObject):

    errorOccurred            : typing.ClassVar[Signal] = ... # errorOccurred(QGeoPositionInfoSource::Error)
    positionUpdated          : typing.ClassVar[Signal] = ... # positionUpdated(QGeoPositionInfo)
    supportedPositioningMethodsChanged: typing.ClassVar[Signal] = ... # supportedPositioningMethodsChanged()

    class Error(enum.Enum):

        AccessError               = 0x0
        ClosedError               = 0x1
        UnknownSourceError        = 0x2
        NoError                   = 0x3
        UpdateTimeoutError        = 0x4

    class PositioningMethod(enum.Flag):

        NoPositioningMethods      = 0x0
        SatellitePositioningMethods = 0xff
        NonSatellitePositioningMethods = 0xffffff00
        AllPositioningMethods     = 0xffffffff


class QGeoPositionInfoSourceFactory(Shiboken.Object): ...


class QGeoRectangle(PySide6.QtPositioning.QGeoShape): ...


class QGeoSatelliteInfo(Shiboken.Object):

    class Attribute(enum.Enum):

        Elevation                 = 0x0
        Azimuth                   = 0x1

    class SatelliteSystem(enum.Enum):

        Undefined                 = 0x0
        GPS                       = 0x1
        GLONASS                   = 0x2
        GALILEO                   = 0x3
        BEIDOU                    = 0x4
        QZSS                      = 0x5
        Multiple                  = 0xff
        CustomType                = 0x100


    def __repr__(self, /) -> str: ...


class QGeoSatelliteInfoSource(PySide6.QtCore.QObject):

    errorOccurred            : typing.ClassVar[Signal] = ... # errorOccurred(QGeoSatelliteInfoSource::Error)
    satellitesInUseUpdated   : typing.ClassVar[Signal] = ... # satellitesInUseUpdated(QList<QGeoSatelliteInfo>)
    satellitesInViewUpdated  : typing.ClassVar[Signal] = ... # satellitesInViewUpdated(QList<QGeoSatelliteInfo>)

    class Error(enum.Enum):

        UnknownSourceError        = -1
        AccessError               = 0x0
        ClosedError               = 0x1
        NoError                   = 0x2
        UpdateTimeoutError        = 0x3


class QGeoShape(Shiboken.Object):

    class ShapeType(enum.Enum):

        UnknownType               = 0x0
        RectangleType             = 0x1
        CircleType                = 0x2
        PathType                  = 0x3
        PolygonType               = 0x4


    def __repr__(self, /) -> str: ...


class QIntList: ...


class QNmeaPositionInfoSource(PySide6.QtPositioning.QGeoPositionInfoSource):

    class UpdateMode(enum.Enum):

        RealTimeMode              = 0x1
        SimulationMode            = 0x2


class QNmeaSatelliteInfoSource(PySide6.QtPositioning.QGeoSatelliteInfoSource):

    class SatelliteInfoParseStatus(enum.Enum):

        NotParsed                 = 0x0
        PartiallyParsed           = 0x1
        FullyParsed               = 0x2

    class UpdateMode(enum.Enum):

        RealTimeMode              = 0x1
        SimulationMode            = 0x2


# eof
