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

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import meshtastic.localonly_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class DeviceProfile(google.protobuf.message.Message):
    """
    This abstraction is used to contain any configuration for provisioning a node on any client.
    It is useful for importing and exporting configurations.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LONG_NAME_FIELD_NUMBER: builtins.int
    SHORT_NAME_FIELD_NUMBER: builtins.int
    CHANNEL_URL_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    MODULE_CONFIG_FIELD_NUMBER: builtins.int
    long_name: builtins.str
    """
    Long name for the node
    """
    short_name: builtins.str
    """
    Short name of the node
    """
    channel_url: builtins.str
    """
    The url of the channels from our node
    """
    @property
    def config(self) -> meshtastic.localonly_pb2.LocalConfig:
        """
        The Config of the node
        """

    @property
    def module_config(self) -> meshtastic.localonly_pb2.LocalModuleConfig:
        """
        The ModuleConfig of the node
        """

    def __init__(
        self,
        *,
        long_name: builtins.str | None = ...,
        short_name: builtins.str | None = ...,
        channel_url: builtins.str | None = ...,
        config: meshtastic.localonly_pb2.LocalConfig | None = ...,
        module_config: meshtastic.localonly_pb2.LocalModuleConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_channel_url", b"_channel_url", "_config", b"_config", "_long_name", b"_long_name", "_module_config", b"_module_config", "_short_name", b"_short_name", "channel_url", b"channel_url", "config", b"config", "long_name", b"long_name", "module_config", b"module_config", "short_name", b"short_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_channel_url", b"_channel_url", "_config", b"_config", "_long_name", b"_long_name", "_module_config", b"_module_config", "_short_name", b"_short_name", "channel_url", b"channel_url", "config", b"config", "long_name", b"long_name", "module_config", b"module_config", "short_name", b"short_name"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_channel_url", b"_channel_url"]) -> typing.Literal["channel_url"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_config", b"_config"]) -> typing.Literal["config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_long_name", b"_long_name"]) -> typing.Literal["long_name"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_module_config", b"_module_config"]) -> typing.Literal["module_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_short_name", b"_short_name"]) -> typing.Literal["short_name"] | None: ...

global___DeviceProfile = DeviceProfile
