"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import sys

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions
from builtins import (
    bool,
    float,
    int,
    str,
    type,
)
from collections.abc import (
    Iterable,
)
from google.protobuf.descriptor import (
    Descriptor,
    EnumDescriptor,
    FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
)
from google.protobuf.internal.enum_type_wrapper import (
    _EnumTypeWrapper,
)
from google.protobuf.message import (
    Message,
)
from typing import (
    Literal,
    NewType,
    final,
)

DESCRIPTOR: FileDescriptor

class _RestrictionVisibility:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _RestrictionVisibilityEnumTypeWrapper(_EnumTypeWrapper[_RestrictionVisibility.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    NOT_VISIBLE: _RestrictionVisibility.ValueType  # 0
    PARTIALLY_VISIBLE: _RestrictionVisibility.ValueType  # 1
    FULLY_VISIBLE: _RestrictionVisibility.ValueType  # 2

class RestrictionVisibility(_RestrictionVisibility, metaclass=_RestrictionVisibilityEnumTypeWrapper): ...

NOT_VISIBLE: RestrictionVisibility.ValueType  # 0
PARTIALLY_VISIBLE: RestrictionVisibility.ValueType  # 1
FULLY_VISIBLE: RestrictionVisibility.ValueType  # 2

class _Service:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _ServiceEnumTypeWrapper(_EnumTypeWrapper[_Service.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    PASSENGER: _Service.ValueType  # 0
    CARGO: _Service.ValueType  # 1
    MILITARY_AND_GOVERNMENT: _Service.ValueType  # 2
    BUSINESS_JETS: _Service.ValueType  # 3
    GENERAL_AVIATION: _Service.ValueType  # 4
    HELICOPTERS: _Service.ValueType  # 5
    LIGHTER_THAN_AIR: _Service.ValueType  # 6
    GLIDERS: _Service.ValueType  # 7
    DRONES: _Service.ValueType  # 8
    GROUND_VEHICLES: _Service.ValueType  # 9
    OTHER_SERVICE: _Service.ValueType  # 10
    NON_CATEGORIZED: _Service.ValueType  # 11

class Service(_Service, metaclass=_ServiceEnumTypeWrapper): ...

PASSENGER: Service.ValueType  # 0
CARGO: Service.ValueType  # 1
MILITARY_AND_GOVERNMENT: Service.ValueType  # 2
BUSINESS_JETS: Service.ValueType  # 3
GENERAL_AVIATION: Service.ValueType  # 4
HELICOPTERS: Service.ValueType  # 5
LIGHTER_THAN_AIR: Service.ValueType  # 6
GLIDERS: Service.ValueType  # 7
DRONES: Service.ValueType  # 8
GROUND_VEHICLES: Service.ValueType  # 9
OTHER_SERVICE: Service.ValueType  # 10
NON_CATEGORIZED: Service.ValueType  # 11

class _TrafficType:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _TrafficTypeEnumTypeWrapper(_EnumTypeWrapper[_TrafficType.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    NONE: _TrafficType.ValueType  # 0
    GROUND_ONLY: _TrafficType.ValueType  # 1
    AIRBORNE_ONLY: _TrafficType.ValueType  # 2
    ALL: _TrafficType.ValueType  # 3

class TrafficType(_TrafficType, metaclass=_TrafficTypeEnumTypeWrapper): ...

NONE: TrafficType.ValueType  # 0
GROUND_ONLY: TrafficType.ValueType  # 1
AIRBORNE_ONLY: TrafficType.ValueType  # 2
ALL: TrafficType.ValueType  # 3

class _DataSource:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _DataSourceEnumTypeWrapper(_EnumTypeWrapper[_DataSource.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    ADSB: _DataSource.ValueType  # 0
    MLAT: _DataSource.ValueType  # 1
    FLARM: _DataSource.ValueType  # 2
    FAA: _DataSource.ValueType  # 3
    ESTIMATED: _DataSource.ValueType  # 4
    SATELLITE: _DataSource.ValueType  # 5
    OTHER_DATA_SOURCE: _DataSource.ValueType  # 6
    UAT: _DataSource.ValueType  # 7
    SPIDERTRACKS: _DataSource.ValueType  # 8
    AUS: _DataSource.ValueType  # 9

class DataSource(_DataSource, metaclass=_DataSourceEnumTypeWrapper): ...

ADSB: DataSource.ValueType  # 0
MLAT: DataSource.ValueType  # 1
FLARM: DataSource.ValueType  # 2
FAA: DataSource.ValueType  # 3
ESTIMATED: DataSource.ValueType  # 4
SATELLITE: DataSource.ValueType  # 5
OTHER_DATA_SOURCE: DataSource.ValueType  # 6
UAT: DataSource.ValueType  # 7
SPIDERTRACKS: DataSource.ValueType  # 8
AUS: DataSource.ValueType  # 9

class _Icon:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _IconEnumTypeWrapper(_EnumTypeWrapper[_Icon.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    B738: _Icon.ValueType  # 0
    FGTR: _Icon.ValueType  # 1
    ASW20: _Icon.ValueType  # 2
    C206: _Icon.ValueType  # 3
    C303: _Icon.ValueType  # 4
    LJ60: _Icon.ValueType  # 5
    Q300: _Icon.ValueType  # 6
    B736: _Icon.ValueType  # 7
    FOKKER100: _Icon.ValueType  # 8
    RJ85: _Icon.ValueType  # 9
    A320: _Icon.ValueType  # 10
    B757: _Icon.ValueType  # 11
    B767: _Icon.ValueType  # 12
    A3ST: _Icon.ValueType  # 13
    MD11: _Icon.ValueType  # 14
    A330: _Icon.ValueType  # 15
    A343: _Icon.ValueType  # 16
    A346: _Icon.ValueType  # 17
    B777: _Icon.ValueType  # 18
    B747: _Icon.ValueType  # 19
    A380: _Icon.ValueType  # 20
    A225: _Icon.ValueType  # 21
    SI2: _Icon.ValueType  # 22
    EC: _Icon.ValueType  # 23
    BALL: _Icon.ValueType  # 24
    GRND: _Icon.ValueType  # 25
    SLEI: _Icon.ValueType  # 26
    DRON: _Icon.ValueType  # 27
    SAT: _Icon.ValueType  # 28
    ISS: _Icon.ValueType  # 29

class Icon(_Icon, metaclass=_IconEnumTypeWrapper): ...

B738: Icon.ValueType  # 0
FGTR: Icon.ValueType  # 1
ASW20: Icon.ValueType  # 2
C206: Icon.ValueType  # 3
C303: Icon.ValueType  # 4
LJ60: Icon.ValueType  # 5
Q300: Icon.ValueType  # 6
B736: Icon.ValueType  # 7
FOKKER100: Icon.ValueType  # 8
RJ85: Icon.ValueType  # 9
A320: Icon.ValueType  # 10
B757: Icon.ValueType  # 11
B767: Icon.ValueType  # 12
A3ST: Icon.ValueType  # 13
MD11: Icon.ValueType  # 14
A330: Icon.ValueType  # 15
A343: Icon.ValueType  # 16
A346: Icon.ValueType  # 17
B777: Icon.ValueType  # 18
B747: Icon.ValueType  # 19
A380: Icon.ValueType  # 20
A225: Icon.ValueType  # 21
SI2: Icon.ValueType  # 22
EC: Icon.ValueType  # 23
BALL: Icon.ValueType  # 24
GRND: Icon.ValueType  # 25
SLEI: Icon.ValueType  # 26
DRON: Icon.ValueType  # 27
SAT: Icon.ValueType  # 28
ISS: Icon.ValueType  # 29

class _Status:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _StatusEnumTypeWrapper(_EnumTypeWrapper[_Status.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    NORMAL: _Status.ValueType  # 0
    BACKGROUND: _Status.ValueType  # 1
    EMERGENCY: _Status.ValueType  # 2
    NOT_AVAILABLE: _Status.ValueType  # 3
    LIVE: _Status.ValueType  # 4

class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...

NORMAL: Status.ValueType  # 0
BACKGROUND: Status.ValueType  # 1
EMERGENCY: Status.ValueType  # 2
NOT_AVAILABLE: Status.ValueType  # 3
LIVE: Status.ValueType  # 4

class _EmergencyStatus:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _EmergencyStatusEnumTypeWrapper(_EnumTypeWrapper[_EmergencyStatus.ValueType], type):
    DESCRIPTOR: EnumDescriptor
    NO_EMERGENCY: _EmergencyStatus.ValueType  # 0
    GENERAL_EMERGENCY: _EmergencyStatus.ValueType  # 1
    LIFEGUARD_MEDICAL_EMERGENCY: _EmergencyStatus.ValueType  # 2
    MINIMUM_FUEL: _EmergencyStatus.ValueType  # 3
    NO_COMMUNICATIONS: _EmergencyStatus.ValueType  # 4
    UNLAWFUL_INTERFERENCE: _EmergencyStatus.ValueType  # 5
    DOWNED_AIRCRAFT: _EmergencyStatus.ValueType  # 6
    RESERVED: _EmergencyStatus.ValueType  # 7

class EmergencyStatus(_EmergencyStatus, metaclass=_EmergencyStatusEnumTypeWrapper):
    """NOTE: unused anywhere"""

NO_EMERGENCY: EmergencyStatus.ValueType  # 0
GENERAL_EMERGENCY: EmergencyStatus.ValueType  # 1
LIFEGUARD_MEDICAL_EMERGENCY: EmergencyStatus.ValueType  # 2
MINIMUM_FUEL: EmergencyStatus.ValueType  # 3
NO_COMMUNICATIONS: EmergencyStatus.ValueType  # 4
UNLAWFUL_INTERFERENCE: EmergencyStatus.ValueType  # 5
DOWNED_AIRCRAFT: EmergencyStatus.ValueType  # 6
RESERVED: EmergencyStatus.ValueType  # 7

@final
class EMSInfo(Message):
    """TODO: check units"""

    DESCRIPTOR: Descriptor

    QNH_FIELD_NUMBER: int
    AMCP_FIELD_NUMBER: int
    AFMS_FIELD_NUMBER: int
    OAT_FIELD_NUMBER: int
    IAS_FIELD_NUMBER: int
    TAS_FIELD_NUMBER: int
    MACH_FIELD_NUMBER: int
    AGPS_FIELD_NUMBER: int
    AGPSDIFF_FIELD_NUMBER: int
    APFLAGS_FIELD_NUMBER: int
    WIND_DIR_FIELD_NUMBER: int
    WIND_SPEED_FIELD_NUMBER: int
    RS_FIELD_NUMBER: int
    qnh: int
    """Altimeter setting (QFE or QNH/QNE)"""
    amcp: int
    """MCP/FCU selected altitude (BDS4,0)"""
    afms: int
    """FMS selected altitude (BDS4,0)"""
    oat: int
    """Outside air temperature"""
    ias: int
    """Indicated airspeed (BDS6,0), knots"""
    tas: int
    """True airspeed (BDS0,5), knots"""
    mach: int
    """Mach number (BDS6,0), 1e3
    `704` = M0.704
    """
    agps: int
    agpsdiff: int
    """|amcp - agps|"""
    apflags: int
    """often null"""
    wind_dir: int
    wind_speed: int
    rs: int
    def __init__(
        self,
        *,
        qnh: int = ...,
        amcp: int = ...,
        afms: int = ...,
        oat: int = ...,
        ias: int = ...,
        tas: int = ...,
        mach: int = ...,
        agps: int = ...,
        agpsdiff: int = ...,
        apflags: int = ...,
        wind_dir: int = ...,
        wind_speed: int = ...,
        rs: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["afms", b"afms", "agps", b"agps", "agpsdiff", b"agpsdiff", "amcp", b"amcp", "apflags", b"apflags", "ias", b"ias", "mach", b"mach", "oat", b"oat", "qnh", b"qnh", "rs", b"rs", "tas", b"tas", "wind_dir", b"wind_dir", "wind_speed", b"wind_speed"]) -> None: ...

@final
class EMSAvailability(Message):
    DESCRIPTOR: Descriptor

    QNH_AVAILABILITY_FIELD_NUMBER: int
    AMCP_AVAILABILITY_FIELD_NUMBER: int
    AFMS_AVAILABILITY_FIELD_NUMBER: int
    OAT_AVAILABILITY_FIELD_NUMBER: int
    IAS_AVAILABILITY_FIELD_NUMBER: int
    TAS_AVAILABILITY_FIELD_NUMBER: int
    MACH_AVAILABILITY_FIELD_NUMBER: int
    AGPS_AVAILABILITY_FIELD_NUMBER: int
    AGPSDIFF_AVAILABILITY_FIELD_NUMBER: int
    APFLAGS_AVAILABILITY_FIELD_NUMBER: int
    WIND_DIR_AVAILABILITY_FIELD_NUMBER: int
    WIND_SPEED_AVAILABILITY_FIELD_NUMBER: int
    RS_AVAILABILITY_FIELD_NUMBER: int
    qnh_availability: bool
    amcp_availability: bool
    afms_availability: bool
    oat_availability: bool
    ias_availability: bool
    tas_availability: bool
    mach_availability: bool
    agps_availability: bool
    agpsdiff_availability: bool
    apflags_availability: bool
    wind_dir_availability: bool
    wind_speed_availability: bool
    rs_availability: bool
    def __init__(
        self,
        *,
        qnh_availability: bool = ...,
        amcp_availability: bool = ...,
        afms_availability: bool = ...,
        oat_availability: bool = ...,
        ias_availability: bool = ...,
        tas_availability: bool = ...,
        mach_availability: bool = ...,
        agps_availability: bool = ...,
        agpsdiff_availability: bool = ...,
        apflags_availability: bool = ...,
        wind_dir_availability: bool = ...,
        wind_speed_availability: bool = ...,
        rs_availability: bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["afms_availability", b"afms_availability", "agps_availability", b"agps_availability", "agpsdiff_availability", b"agpsdiff_availability", "amcp_availability", b"amcp_availability", "apflags_availability", b"apflags_availability", "ias_availability", b"ias_availability", "mach_availability", b"mach_availability", "oat_availability", b"oat_availability", "qnh_availability", b"qnh_availability", "rs_availability", b"rs_availability", "tas_availability", b"tas_availability", "wind_dir_availability", b"wind_dir_availability", "wind_speed_availability", b"wind_speed_availability"]) -> None: ...

@final
class Schedule(Message):
    DESCRIPTOR: Descriptor

    STD_FIELD_NUMBER: int
    ETD_FIELD_NUMBER: int
    ATD_FIELD_NUMBER: int
    STA_FIELD_NUMBER: int
    ETA_FIELD_NUMBER: int
    ATA_FIELD_NUMBER: int
    std: int
    etd: int
    atd: int
    sta: int
    eta: int
    ata: int
    def __init__(
        self,
        *,
        std: int = ...,
        etd: int = ...,
        atd: int = ...,
        sta: int = ...,
        eta: int = ...,
        ata: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["ata", b"ata", "atd", b"atd", "eta", b"eta", "etd", b"etd", "sta", b"sta", "std", b"std"]) -> None: ...

@final
class Route(Message):
    DESCRIPTOR: Descriptor

    FROM_FIELD_NUMBER: int
    TO_FIELD_NUMBER: int
    DIVERTED_TO_FIELD_NUMBER: int
    to: str
    diverted_to: str
    def __init__(
        self,
        *,
        to: str = ...,
        diverted_to: str = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["diverted_to", b"diverted_to", "from", b"from", "to", b"to"]) -> None: ...

@final
class ExtraFlightInfo(Message):
    """15, 16, 17, 18, 19 available only when flight is selected"""

    DESCRIPTOR: Descriptor

    FLIGHT_FIELD_NUMBER: int
    REG_FIELD_NUMBER: int
    ROUTE_FIELD_NUMBER: int
    TYPE_FIELD_NUMBER: int
    SQUAWK_FIELD_NUMBER: int
    VSPEED_FIELD_NUMBER: int
    AGE_FIELD_NUMBER: int
    COUNTRY_OF_REG_FIELD_NUMBER: int
    SCHEDULE_FIELD_NUMBER: int
    LOGO_ID_FIELD_NUMBER: int
    AIRSPACE_FIELD_NUMBER: int
    EMS_INFO_FIELD_NUMBER: int
    EMS_AVAILABILITY_FIELD_NUMBER: int
    ICAO_ADDRESS_FIELD_NUMBER: int
    OPERATED_BY_ID_FIELD_NUMBER: int
    SQUAWK_AVAILABILITY_FIELD_NUMBER: int
    VSPEED_AVAILABILITY_FIELD_NUMBER: int
    AIRSPACE_AVAILABILITY_FIELD_NUMBER: int
    AIRSPACE_ID_FIELD_NUMBER: int
    flight: str
    """IATA Flight number, e.g. `CX8747`"""
    reg: str
    """Aircraft registration, e.g. `B-HUJ`"""
    type: str
    squawk: int
    """Squawk number, in base-10. 20852 -> 0x5174"""
    vspeed: int
    age: str
    """Aircraft age, years."""
    country_of_reg: int
    logo_id: int
    """u32"""
    airspace: int
    """FIR"""
    icao_address: int
    operated_by_id: int
    squawk_availability: bool
    vspeed_availability: bool
    airspace_availability: bool
    airspace_id: str
    @property
    def route(self) -> Route: ...
    @property
    def schedule(self) -> Schedule: ...
    @property
    def ems_info(self) -> EMSInfo: ...
    @property
    def ems_availability(self) -> EMSAvailability: ...
    def __init__(
        self,
        *,
        flight: str = ...,
        reg: str = ...,
        route: Route | None = ...,
        type: str = ...,
        squawk: int = ...,
        vspeed: int = ...,
        age: str = ...,
        country_of_reg: int = ...,
        schedule: Schedule | None = ...,
        logo_id: int = ...,
        airspace: int = ...,
        ems_info: EMSInfo | None = ...,
        ems_availability: EMSAvailability | None = ...,
        icao_address: int = ...,
        operated_by_id: int = ...,
        squawk_availability: bool = ...,
        vspeed_availability: bool = ...,
        airspace_availability: bool = ...,
        airspace_id: str = ...,
    ) -> None: ...
    def HasField(self, field_name: Literal["ems_availability", b"ems_availability", "ems_info", b"ems_info", "route", b"route", "schedule", b"schedule"]) -> bool: ...
    def ClearField(self, field_name: Literal["age", b"age", "airspace", b"airspace", "airspace_availability", b"airspace_availability", "airspace_id", b"airspace_id", "country_of_reg", b"country_of_reg", "ems_availability", b"ems_availability", "ems_info", b"ems_info", "flight", b"flight", "icao_address", b"icao_address", "logo_id", b"logo_id", "operated_by_id", b"operated_by_id", "reg", b"reg", "route", b"route", "schedule", b"schedule", "squawk", b"squawk", "squawk_availability", b"squawk_availability", "type", b"type", "vspeed", b"vspeed", "vspeed_availability", b"vspeed_availability"]) -> None: ...

@final
class SourceStats(Message):
    DESCRIPTOR: Descriptor

    SOURCE_FIELD_NUMBER: int
    COUNT_FIELD_NUMBER: int
    source: DataSource.ValueType
    count: int
    def __init__(
        self,
        *,
        source: DataSource.ValueType = ...,
        count: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["count", b"count", "source", b"source"]) -> None: ...

@final
class Stats(Message):
    DESCRIPTOR: Descriptor

    SOURCES_FIELD_NUMBER: int
    @property
    def sources(self) -> RepeatedCompositeFieldContainer[SourceStats]: ...
    def __init__(
        self,
        *,
        sources: Iterable[SourceStats] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["sources", b"sources"]) -> None: ...

@final
class RecentPosition(Message):
    DESCRIPTOR: Descriptor

    DELTA_LAT_FIELD_NUMBER: int
    DELTA_LON_FIELD_NUMBER: int
    DELTA_MS_FIELD_NUMBER: int
    delta_lat: int
    """Offset from the current latitude, 1e5 degrees"""
    delta_lon: int
    """Offset from the current longitude, 1e5 degrees"""
    delta_ms: int
    def __init__(
        self,
        *,
        delta_lat: int = ...,
        delta_lon: int = ...,
        delta_ms: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["delta_lat", b"delta_lat", "delta_lon", b"delta_lon", "delta_ms", b"delta_ms"]) -> None: ...

@final
class PositionBuffer(Message):
    DESCRIPTOR: Descriptor

    RECENT_POSITIONS_LIST_FIELD_NUMBER: int
    @property
    def recent_positions_list(self) -> RepeatedCompositeFieldContainer[RecentPosition]: ...
    def __init__(
        self,
        *,
        recent_positions_list: Iterable[RecentPosition] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["recent_positions_list", b"recent_positions_list"]) -> None: ...

@final
class Flight(Message):
    DESCRIPTOR: Descriptor

    FLIGHTID_FIELD_NUMBER: int
    LAT_FIELD_NUMBER: int
    LON_FIELD_NUMBER: int
    TRACK_FIELD_NUMBER: int
    ALT_FIELD_NUMBER: int
    SPEED_FIELD_NUMBER: int
    ICON_FIELD_NUMBER: int
    STATUS_FIELD_NUMBER: int
    TIMESTAMP_FIELD_NUMBER: int
    ON_GROUND_FIELD_NUMBER: int
    CALLSIGN_FIELD_NUMBER: int
    SOURCE_FIELD_NUMBER: int
    EXTRA_INFO_FIELD_NUMBER: int
    POSITION_BUFFER_FIELD_NUMBER: int
    flightid: int
    """FR24 flight id, in base-10. Convert to hex for use in URLs."""
    lat: float
    """Latitude, degrees, -90 to 90"""
    lon: float
    """Longitude, degrees, -180 to 180"""
    track: int
    """True track angle, degrees clockwise from North"""
    alt: int
    """Barometric altitude, feet"""
    speed: int
    """Ground speed, knots"""
    icon: Icon.ValueType
    status: Status.ValueType
    timestamp: int
    on_ground: bool
    callsign: str
    """Callsign, e.g. `CPA8747`"""
    source: DataSource.ValueType
    @property
    def extra_info(self) -> ExtraFlightInfo: ...
    @property
    def position_buffer(self) -> PositionBuffer: ...
    def __init__(
        self,
        *,
        flightid: int = ...,
        lat: float = ...,
        lon: float = ...,
        track: int = ...,
        alt: int = ...,
        speed: int = ...,
        icon: Icon.ValueType = ...,
        status: Status.ValueType = ...,
        timestamp: int = ...,
        on_ground: bool = ...,
        callsign: str = ...,
        source: DataSource.ValueType = ...,
        extra_info: ExtraFlightInfo | None = ...,
        position_buffer: PositionBuffer | None = ...,
    ) -> None: ...
    def HasField(self, field_name: Literal["extra_info", b"extra_info", "position_buffer", b"position_buffer"]) -> bool: ...
    def ClearField(self, field_name: Literal["alt", b"alt", "callsign", b"callsign", "extra_info", b"extra_info", "flightid", b"flightid", "icon", b"icon", "lat", b"lat", "lon", b"lon", "on_ground", b"on_ground", "position_buffer", b"position_buffer", "source", b"source", "speed", b"speed", "status", b"status", "timestamp", b"timestamp", "track", b"track"]) -> None: ...

@final
class Duration(Message):
    """used in CountDown"""

    DESCRIPTOR: Descriptor

    COUNT_FIELD_NUMBER: int
    count: int
    def __init__(
        self,
        *,
        count: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["count", b"count"]) -> None: ...

@final
class Tick(Message):
    DESCRIPTOR: Descriptor

    COUNT_FIELD_NUMBER: int
    count: int
    def __init__(
        self,
        *,
        count: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["count", b"count"]) -> None: ...

@final
class RadarHistoryRecord(Message):
    """used in *trail"""

    DESCRIPTOR: Descriptor

    TIMESTAMP_FIELD_NUMBER: int
    LAT_FIELD_NUMBER: int
    LON_FIELD_NUMBER: int
    ALTITUDE_FIELD_NUMBER: int
    SPD_FIELD_NUMBER: int
    HEADING_FIELD_NUMBER: int
    VSPD_FIELD_NUMBER: int
    SQUAWK_FIELD_NUMBER: int
    SOURCE_FIELD_NUMBER: int
    CALLSIGN_FIELD_NUMBER: int
    timestamp: int
    lat: float
    lon: float
    altitude: int
    spd: int
    heading: int
    """True track angle, degrees clockwise from North"""
    vspd: int
    squawk: int
    source: DataSource.ValueType
    """?"""
    callsign: str
    def __init__(
        self,
        *,
        timestamp: int = ...,
        lat: float = ...,
        lon: float = ...,
        altitude: int = ...,
        spd: int = ...,
        heading: int = ...,
        vspd: int = ...,
        squawk: int = ...,
        source: DataSource.ValueType = ...,
        callsign: str = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["altitude", b"altitude", "callsign", b"callsign", "heading", b"heading", "lat", b"lat", "lon", b"lon", "source", b"source", "spd", b"spd", "squawk", b"squawk", "timestamp", b"timestamp", "vspd", b"vspd"]) -> None: ...
