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

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import meshtastic.protobuf.config_pb2
import meshtastic.protobuf.module_config_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class LocalConfig(google.protobuf.message.Message):
    """
    Protobuf structures common to apponly.proto and deviceonly.proto
    This is never sent over the wire, only for local use
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEVICE_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    POWER_FIELD_NUMBER: builtins.int
    NETWORK_FIELD_NUMBER: builtins.int
    DISPLAY_FIELD_NUMBER: builtins.int
    LORA_FIELD_NUMBER: builtins.int
    BLUETOOTH_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    SECURITY_FIELD_NUMBER: builtins.int
    version: builtins.int
    """
    A version integer used to invalidate old save files when we make
    incompatible changes This integer is set at build time and is private to
    NodeDB.cpp in the device code.
    """
    @property
    def device(self) -> meshtastic.protobuf.config_pb2.Config.DeviceConfig:
        """
        The part of the config that is specific to the Device
        """

    @property
    def position(self) -> meshtastic.protobuf.config_pb2.Config.PositionConfig:
        """
        The part of the config that is specific to the GPS Position
        """

    @property
    def power(self) -> meshtastic.protobuf.config_pb2.Config.PowerConfig:
        """
        The part of the config that is specific to the Power settings
        """

    @property
    def network(self) -> meshtastic.protobuf.config_pb2.Config.NetworkConfig:
        """
        The part of the config that is specific to the Wifi Settings
        """

    @property
    def display(self) -> meshtastic.protobuf.config_pb2.Config.DisplayConfig:
        """
        The part of the config that is specific to the Display
        """

    @property
    def lora(self) -> meshtastic.protobuf.config_pb2.Config.LoRaConfig:
        """
        The part of the config that is specific to the Lora Radio
        """

    @property
    def bluetooth(self) -> meshtastic.protobuf.config_pb2.Config.BluetoothConfig:
        """
        The part of the config that is specific to the Bluetooth settings
        """

    @property
    def security(self) -> meshtastic.protobuf.config_pb2.Config.SecurityConfig:
        """
        The part of the config that is specific to Security settings
        """

    def __init__(
        self,
        *,
        device: meshtastic.protobuf.config_pb2.Config.DeviceConfig | None = ...,
        position: meshtastic.protobuf.config_pb2.Config.PositionConfig | None = ...,
        power: meshtastic.protobuf.config_pb2.Config.PowerConfig | None = ...,
        network: meshtastic.protobuf.config_pb2.Config.NetworkConfig | None = ...,
        display: meshtastic.protobuf.config_pb2.Config.DisplayConfig | None = ...,
        lora: meshtastic.protobuf.config_pb2.Config.LoRaConfig | None = ...,
        bluetooth: meshtastic.protobuf.config_pb2.Config.BluetoothConfig | None = ...,
        version: builtins.int = ...,
        security: meshtastic.protobuf.config_pb2.Config.SecurityConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "position", b"position", "power", b"power", "security", b"security"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bluetooth", b"bluetooth", "device", b"device", "display", b"display", "lora", b"lora", "network", b"network", "position", b"position", "power", b"power", "security", b"security", "version", b"version"]) -> None: ...

global___LocalConfig = LocalConfig

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

    MQTT_FIELD_NUMBER: builtins.int
    SERIAL_FIELD_NUMBER: builtins.int
    EXTERNAL_NOTIFICATION_FIELD_NUMBER: builtins.int
    STORE_FORWARD_FIELD_NUMBER: builtins.int
    RANGE_TEST_FIELD_NUMBER: builtins.int
    TELEMETRY_FIELD_NUMBER: builtins.int
    CANNED_MESSAGE_FIELD_NUMBER: builtins.int
    AUDIO_FIELD_NUMBER: builtins.int
    REMOTE_HARDWARE_FIELD_NUMBER: builtins.int
    NEIGHBOR_INFO_FIELD_NUMBER: builtins.int
    AMBIENT_LIGHTING_FIELD_NUMBER: builtins.int
    DETECTION_SENSOR_FIELD_NUMBER: builtins.int
    PAXCOUNTER_FIELD_NUMBER: builtins.int
    STATUSMESSAGE_FIELD_NUMBER: builtins.int
    TRAFFIC_MANAGEMENT_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    version: builtins.int
    """
    A version integer used to invalidate old save files when we make
    incompatible changes This integer is set at build time and is private to
    NodeDB.cpp in the device code.
    """
    @property
    def mqtt(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.MQTTConfig:
        """
        The part of the config that is specific to the MQTT module
        """

    @property
    def serial(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.SerialConfig:
        """
        The part of the config that is specific to the Serial module
        """

    @property
    def external_notification(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.ExternalNotificationConfig:
        """
        The part of the config that is specific to the ExternalNotification module
        """

    @property
    def store_forward(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.StoreForwardConfig:
        """
        The part of the config that is specific to the Store & Forward module
        """

    @property
    def range_test(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.RangeTestConfig:
        """
        The part of the config that is specific to the RangeTest module
        """

    @property
    def telemetry(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.TelemetryConfig:
        """
        The part of the config that is specific to the Telemetry module
        """

    @property
    def canned_message(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.CannedMessageConfig:
        """
        The part of the config that is specific to the Canned Message module
        """

    @property
    def audio(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.AudioConfig:
        """
        The part of the config that is specific to the Audio module
        """

    @property
    def remote_hardware(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.RemoteHardwareConfig:
        """
        The part of the config that is specific to the Remote Hardware module
        """

    @property
    def neighbor_info(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.NeighborInfoConfig:
        """
        The part of the config that is specific to the Neighbor Info module
        """

    @property
    def ambient_lighting(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.AmbientLightingConfig:
        """
        The part of the config that is specific to the Ambient Lighting module
        """

    @property
    def detection_sensor(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.DetectionSensorConfig:
        """
        The part of the config that is specific to the Detection Sensor module
        """

    @property
    def paxcounter(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.PaxcounterConfig:
        """
        Paxcounter Config
        """

    @property
    def statusmessage(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.StatusMessageConfig:
        """
        StatusMessage Config
        """

    @property
    def traffic_management(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig.TrafficManagementConfig:
        """
        The part of the config that is specific to the Traffic Management module
        """

    def __init__(
        self,
        *,
        mqtt: meshtastic.protobuf.module_config_pb2.ModuleConfig.MQTTConfig | None = ...,
        serial: meshtastic.protobuf.module_config_pb2.ModuleConfig.SerialConfig | None = ...,
        external_notification: meshtastic.protobuf.module_config_pb2.ModuleConfig.ExternalNotificationConfig | None = ...,
        store_forward: meshtastic.protobuf.module_config_pb2.ModuleConfig.StoreForwardConfig | None = ...,
        range_test: meshtastic.protobuf.module_config_pb2.ModuleConfig.RangeTestConfig | None = ...,
        telemetry: meshtastic.protobuf.module_config_pb2.ModuleConfig.TelemetryConfig | None = ...,
        canned_message: meshtastic.protobuf.module_config_pb2.ModuleConfig.CannedMessageConfig | None = ...,
        audio: meshtastic.protobuf.module_config_pb2.ModuleConfig.AudioConfig | None = ...,
        remote_hardware: meshtastic.protobuf.module_config_pb2.ModuleConfig.RemoteHardwareConfig | None = ...,
        neighbor_info: meshtastic.protobuf.module_config_pb2.ModuleConfig.NeighborInfoConfig | None = ...,
        ambient_lighting: meshtastic.protobuf.module_config_pb2.ModuleConfig.AmbientLightingConfig | None = ...,
        detection_sensor: meshtastic.protobuf.module_config_pb2.ModuleConfig.DetectionSensorConfig | None = ...,
        paxcounter: meshtastic.protobuf.module_config_pb2.ModuleConfig.PaxcounterConfig | None = ...,
        statusmessage: meshtastic.protobuf.module_config_pb2.ModuleConfig.StatusMessageConfig | None = ...,
        traffic_management: meshtastic.protobuf.module_config_pb2.ModuleConfig.TrafficManagementConfig | None = ...,
        version: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "statusmessage", b"statusmessage", "store_forward", b"store_forward", "telemetry", b"telemetry", "traffic_management", b"traffic_management"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["ambient_lighting", b"ambient_lighting", "audio", b"audio", "canned_message", b"canned_message", "detection_sensor", b"detection_sensor", "external_notification", b"external_notification", "mqtt", b"mqtt", "neighbor_info", b"neighbor_info", "paxcounter", b"paxcounter", "range_test", b"range_test", "remote_hardware", b"remote_hardware", "serial", b"serial", "statusmessage", b"statusmessage", "store_forward", b"store_forward", "telemetry", b"telemetry", "traffic_management", b"traffic_management", "version", b"version"]) -> None: ...

global___LocalModuleConfig = LocalModuleConfig
