"""
@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 meshtastic.protobuf.channel_pb2
import meshtastic.protobuf.config_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class ChannelSet(google.protobuf.message.Message):
    """
    This is the most compact possible representation for a set of channels.
    It includes only one PRIMARY channel (which must be first) and
    any SECONDARY channels.
    No DISABLED channels are included.
    This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SETTINGS_FIELD_NUMBER: builtins.int
    LORA_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def settings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.protobuf.channel_pb2.ChannelSettings]:
        """
        Channel list with settings
        """

    @property
    def lora_config(self) -> meshtastic.protobuf.config_pb2.Config.LoRaConfig:
        """
        LoRa config
        """

    def __init__(
        self,
        *,
        settings: collections.abc.Iterable[meshtastic.protobuf.channel_pb2.ChannelSettings] | None = ...,
        lora_config: meshtastic.protobuf.config_pb2.Config.LoRaConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["lora_config", b"lora_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["lora_config", b"lora_config", "settings", b"settings"]) -> None: ...

global___ChannelSet = ChannelSet
