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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class GetLatestReadingsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_ID_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetLatestReadingsRequest: typing_extensions.TypeAlias = GetLatestReadingsRequest

@typing.final
class SensorReading(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    key: builtins.str
    value: builtins.float
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        key: builtins.str = ...,
        value: builtins.float = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "time", b"time", "value", b"value"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SensorReading: typing_extensions.TypeAlias = SensorReading

@typing.final
class GetLatestReadingsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    READINGS_FIELD_NUMBER: builtins.int
    @property
    def readings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SensorReading]: ...
    def __init__(
        self,
        *,
        readings: collections.abc.Iterable[Global___SensorReading] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["readings", b"readings"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetLatestReadingsResponse: typing_extensions.TypeAlias = GetLatestReadingsResponse

@typing.final
class DeleteReadingsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_IDS_FIELD_NUMBER: builtins.int
    @property
    def device_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        device_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_ids", b"device_ids"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteReadingsRequest: typing_extensions.TypeAlias = DeleteReadingsRequest

@typing.final
class DeleteReadingsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["success", b"success"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteReadingsResponse: typing_extensions.TypeAlias = DeleteReadingsResponse

@typing.final
class GetReadingsRequest(google.protobuf.message.Message):
    """--- Historical readings ---"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_ID_FIELD_NUMBER: builtins.int
    KEYS_FIELD_NUMBER: builtins.int
    FROM_FIELD_NUMBER: builtins.int
    TO_FIELD_NUMBER: builtins.int
    INTERVAL_SECONDS_FIELD_NUMBER: builtins.int
    device_id: builtins.str
    interval_seconds: builtins.int
    @property
    def keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def to(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        device_id: builtins.str = ...,
        keys: collections.abc.Iterable[builtins.str] | None = ...,
        to: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        interval_seconds: builtins.int = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["from", b"from", "to", b"to"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["device_id", b"device_id", "from", b"from", "interval_seconds", b"interval_seconds", "keys", b"keys", "to", b"to"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetReadingsRequest: typing_extensions.TypeAlias = GetReadingsRequest

@typing.final
class AggregatedReading(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TIME_FIELD_NUMBER: builtins.int
    AVG_FIELD_NUMBER: builtins.int
    MIN_FIELD_NUMBER: builtins.int
    MAX_FIELD_NUMBER: builtins.int
    avg: builtins.float
    min: builtins.float
    max: builtins.float
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        avg: builtins.float | None = ...,
        min: builtins.float | None = ...,
        max: builtins.float | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["_avg", b"_avg", "_max", b"_max", "_min", b"_min", "avg", b"avg", "max", b"max", "min", b"min", "time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["_avg", b"_avg", "_max", b"_max", "_min", b"_min", "avg", b"avg", "max", b"max", "min", b"min", "time", b"time"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType__avg: typing_extensions.TypeAlias = typing.Literal["avg"]
    _WhichOneofArgType__avg: typing_extensions.TypeAlias = typing.Literal["_avg", b"_avg"]
    _WhichOneofReturnType__max: typing_extensions.TypeAlias = typing.Literal["max"]
    _WhichOneofArgType__max: typing_extensions.TypeAlias = typing.Literal["_max", b"_max"]
    _WhichOneofReturnType__min: typing_extensions.TypeAlias = typing.Literal["min"]
    _WhichOneofArgType__min: typing_extensions.TypeAlias = typing.Literal["_min", b"_min"]
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__avg) -> _WhichOneofReturnType__avg | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__max) -> _WhichOneofReturnType__max | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__min) -> _WhichOneofReturnType__min | None: ...

Global___AggregatedReading: typing_extensions.TypeAlias = AggregatedReading

@typing.final
class KeyReadings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    POINTS_FIELD_NUMBER: builtins.int
    RAW_POINTS_FIELD_NUMBER: builtins.int
    key: builtins.str
    @property
    def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AggregatedReading]: ...
    @property
    def raw_points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SensorReading]: ...
    def __init__(
        self,
        *,
        key: builtins.str = ...,
        points: collections.abc.Iterable[Global___AggregatedReading] | None = ...,
        raw_points: collections.abc.Iterable[Global___SensorReading] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "points", b"points", "raw_points", b"raw_points"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___KeyReadings: typing_extensions.TypeAlias = KeyReadings

@typing.final
class GetReadingsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SERIES_FIELD_NUMBER: builtins.int
    @property
    def series(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___KeyReadings]: ...
    def __init__(
        self,
        *,
        series: collections.abc.Iterable[Global___KeyReadings] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["series", b"series"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetReadingsResponse: typing_extensions.TypeAlias = GetReadingsResponse
