"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
NOTE: the definition in the web client is:
```
message LiveFlightsStatusResponse {
    repeated LiveFlightStatusData flights_map = 1;
}
```
but in reality it returns a wrapped `LiveFlightStatusData`.
the names `LiveFlightStatus`, `flight_id` and `data`
are non-official.
"""

from builtins import (
    bool,
    float,
    int,
)
from collections.abc import (
    Iterable,
)
from fr24.proto._common_pb2 import (
    Status,
)
from google.protobuf.descriptor import (
    Descriptor,
    FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
)
from google.protobuf.message import (
    Message,
)
from typing import (
    Literal,
    final,
)

DESCRIPTOR: FileDescriptor

@final
class LiveFlightStatusData(Message):
    DESCRIPTOR: Descriptor

    LAT_FIELD_NUMBER: int
    LON_FIELD_NUMBER: int
    STATUS_FIELD_NUMBER: int
    SQUAWK_FIELD_NUMBER: int
    lat: float
    lon: float
    status: Status.ValueType
    squawk: int
    def __init__(
        self,
        *,
        lat: float = ...,
        lon: float = ...,
        status: Status.ValueType = ...,
        squawk: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["lat", b"lat", "lon", b"lon", "squawk", b"squawk", "status", b"status"]) -> None: ...

@final
class LiveFlightsStatusRequest(Message):
    DESCRIPTOR: Descriptor

    FLIGHT_IDS_LIST_FIELD_NUMBER: int
    @property
    def flight_ids_list(self) -> RepeatedScalarFieldContainer[int]: ...
    def __init__(
        self,
        *,
        flight_ids_list: Iterable[int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["flight_ids_list", b"flight_ids_list"]) -> None: ...

@final
class LiveFlightStatus(Message):
    DESCRIPTOR: Descriptor

    FLIGHT_ID_FIELD_NUMBER: int
    DATA_FIELD_NUMBER: int
    flight_id: int
    @property
    def data(self) -> LiveFlightStatusData: ...
    def __init__(
        self,
        *,
        flight_id: int = ...,
        data: LiveFlightStatusData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: Literal["data", b"data"]) -> bool: ...
    def ClearField(self, field_name: Literal["data", b"data", "flight_id", b"flight_id"]) -> None: ...

@final
class LiveFlightsStatusResponse(Message):
    DESCRIPTOR: Descriptor

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