"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import meshtastic.protobuf.channel_pb2
import meshtastic.protobuf.config_pb2
import meshtastic.protobuf.connection_status_pb2
import meshtastic.protobuf.device_ui_pb2
import meshtastic.protobuf.mesh_pb2
import meshtastic.protobuf.module_config_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

class _OTAMode:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _OTAModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OTAMode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NO_REBOOT_OTA: _OTAMode.ValueType  # 0
    """
    Do not reboot into OTA mode
    """
    OTA_BLE: _OTAMode.ValueType  # 1
    """
    Reboot into OTA mode for BLE firmware update
    """
    OTA_WIFI: _OTAMode.ValueType  # 2
    """
    Reboot into OTA mode for WiFi firmware update
    """

class OTAMode(_OTAMode, metaclass=_OTAModeEnumTypeWrapper):
    """
    Firmware update mode for OTA updates
    """

NO_REBOOT_OTA: OTAMode.ValueType  # 0
"""
Do not reboot into OTA mode
"""
OTA_BLE: OTAMode.ValueType  # 1
"""
Reboot into OTA mode for BLE firmware update
"""
OTA_WIFI: OTAMode.ValueType  # 2
"""
Reboot into OTA mode for WiFi firmware update
"""
global___OTAMode = OTAMode

@typing.final
class AdminMessage(google.protobuf.message.Message):
    """
    This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
    This message is used to do settings operations to both remote AND local nodes.
    (Prior to 1.2 these operations were done via special ToRadio operations)
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _ConfigType:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _ConfigTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._ConfigType.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        DEVICE_CONFIG: AdminMessage._ConfigType.ValueType  # 0
        """
        TODO: REPLACE
        """
        POSITION_CONFIG: AdminMessage._ConfigType.ValueType  # 1
        """
        TODO: REPLACE
        """
        POWER_CONFIG: AdminMessage._ConfigType.ValueType  # 2
        """
        TODO: REPLACE
        """
        NETWORK_CONFIG: AdminMessage._ConfigType.ValueType  # 3
        """
        TODO: REPLACE
        """
        DISPLAY_CONFIG: AdminMessage._ConfigType.ValueType  # 4
        """
        TODO: REPLACE
        """
        LORA_CONFIG: AdminMessage._ConfigType.ValueType  # 5
        """
        TODO: REPLACE
        """
        BLUETOOTH_CONFIG: AdminMessage._ConfigType.ValueType  # 6
        """
        TODO: REPLACE
        """
        SECURITY_CONFIG: AdminMessage._ConfigType.ValueType  # 7
        """
        TODO: REPLACE
        """
        SESSIONKEY_CONFIG: AdminMessage._ConfigType.ValueType  # 8
        """
        Session key config
        """
        DEVICEUI_CONFIG: AdminMessage._ConfigType.ValueType  # 9
        """
        device-ui config
        """

    class ConfigType(_ConfigType, metaclass=_ConfigTypeEnumTypeWrapper):
        """
        TODO: REPLACE
        """

    DEVICE_CONFIG: AdminMessage.ConfigType.ValueType  # 0
    """
    TODO: REPLACE
    """
    POSITION_CONFIG: AdminMessage.ConfigType.ValueType  # 1
    """
    TODO: REPLACE
    """
    POWER_CONFIG: AdminMessage.ConfigType.ValueType  # 2
    """
    TODO: REPLACE
    """
    NETWORK_CONFIG: AdminMessage.ConfigType.ValueType  # 3
    """
    TODO: REPLACE
    """
    DISPLAY_CONFIG: AdminMessage.ConfigType.ValueType  # 4
    """
    TODO: REPLACE
    """
    LORA_CONFIG: AdminMessage.ConfigType.ValueType  # 5
    """
    TODO: REPLACE
    """
    BLUETOOTH_CONFIG: AdminMessage.ConfigType.ValueType  # 6
    """
    TODO: REPLACE
    """
    SECURITY_CONFIG: AdminMessage.ConfigType.ValueType  # 7
    """
    TODO: REPLACE
    """
    SESSIONKEY_CONFIG: AdminMessage.ConfigType.ValueType  # 8
    """
    Session key config
    """
    DEVICEUI_CONFIG: AdminMessage.ConfigType.ValueType  # 9
    """
    device-ui config
    """

    class _ModuleConfigType:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _ModuleConfigTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._ModuleConfigType.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        MQTT_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 0
        """
        TODO: REPLACE
        """
        SERIAL_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 1
        """
        TODO: REPLACE
        """
        EXTNOTIF_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 2
        """
        TODO: REPLACE
        """
        STOREFORWARD_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 3
        """
        TODO: REPLACE
        """
        RANGETEST_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 4
        """
        TODO: REPLACE
        """
        TELEMETRY_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 5
        """
        TODO: REPLACE
        """
        CANNEDMSG_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 6
        """
        TODO: REPLACE
        """
        AUDIO_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 7
        """
        TODO: REPLACE
        """
        REMOTEHARDWARE_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 8
        """
        TODO: REPLACE
        """
        NEIGHBORINFO_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 9
        """
        TODO: REPLACE
        """
        AMBIENTLIGHTING_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 10
        """
        TODO: REPLACE
        """
        DETECTIONSENSOR_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 11
        """
        TODO: REPLACE
        """
        PAXCOUNTER_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 12
        """
        TODO: REPLACE
        """
        STATUSMESSAGE_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 13
        """
        TODO: REPLACE
        """
        TRAFFICMANAGEMENT_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 14
        """
        Traffic management module config
        """
        TAK_CONFIG: AdminMessage._ModuleConfigType.ValueType  # 15
        """
        TAK module config
        """

    class ModuleConfigType(_ModuleConfigType, metaclass=_ModuleConfigTypeEnumTypeWrapper):
        """
        TODO: REPLACE
        """

    MQTT_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 0
    """
    TODO: REPLACE
    """
    SERIAL_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 1
    """
    TODO: REPLACE
    """
    EXTNOTIF_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 2
    """
    TODO: REPLACE
    """
    STOREFORWARD_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 3
    """
    TODO: REPLACE
    """
    RANGETEST_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 4
    """
    TODO: REPLACE
    """
    TELEMETRY_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 5
    """
    TODO: REPLACE
    """
    CANNEDMSG_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 6
    """
    TODO: REPLACE
    """
    AUDIO_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 7
    """
    TODO: REPLACE
    """
    REMOTEHARDWARE_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 8
    """
    TODO: REPLACE
    """
    NEIGHBORINFO_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 9
    """
    TODO: REPLACE
    """
    AMBIENTLIGHTING_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 10
    """
    TODO: REPLACE
    """
    DETECTIONSENSOR_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 11
    """
    TODO: REPLACE
    """
    PAXCOUNTER_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 12
    """
    TODO: REPLACE
    """
    STATUSMESSAGE_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 13
    """
    TODO: REPLACE
    """
    TRAFFICMANAGEMENT_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 14
    """
    Traffic management module config
    """
    TAK_CONFIG: AdminMessage.ModuleConfigType.ValueType  # 15
    """
    TAK module config
    """

    class _BackupLocation:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _BackupLocationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdminMessage._BackupLocation.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        FLASH: AdminMessage._BackupLocation.ValueType  # 0
        """
        Backup to the internal flash
        """
        SD: AdminMessage._BackupLocation.ValueType  # 1
        """
        Backup to the SD card
        """

    class BackupLocation(_BackupLocation, metaclass=_BackupLocationEnumTypeWrapper): ...
    FLASH: AdminMessage.BackupLocation.ValueType  # 0
    """
    Backup to the internal flash
    """
    SD: AdminMessage.BackupLocation.ValueType  # 1
    """
    Backup to the SD card
    """

    @typing.final
    class InputEvent(google.protobuf.message.Message):
        """
        Input event message to be sent to the node.
        """

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        EVENT_CODE_FIELD_NUMBER: builtins.int
        KB_CHAR_FIELD_NUMBER: builtins.int
        TOUCH_X_FIELD_NUMBER: builtins.int
        TOUCH_Y_FIELD_NUMBER: builtins.int
        event_code: builtins.int
        """
        The input event code
        """
        kb_char: builtins.int
        """
        Keyboard character code
        """
        touch_x: builtins.int
        """
        The touch X coordinate
        """
        touch_y: builtins.int
        """
        The touch Y coordinate
        """
        def __init__(
            self,
            *,
            event_code: builtins.int = ...,
            kb_char: builtins.int = ...,
            touch_x: builtins.int = ...,
            touch_y: builtins.int = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["event_code", b"event_code", "kb_char", b"kb_char", "touch_x", b"touch_x", "touch_y", b"touch_y"]) -> None: ...

    @typing.final
    class OTAEvent(google.protobuf.message.Message):
        """
        User is requesting an over the air update.
        Node will reboot into the OTA loader
        """

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        REBOOT_OTA_MODE_FIELD_NUMBER: builtins.int
        OTA_HASH_FIELD_NUMBER: builtins.int
        reboot_ota_mode: global___OTAMode.ValueType
        """
        Tell the node to reboot into OTA mode for firmware update via BLE or WiFi (ESP32 only for now)
        """
        ota_hash: builtins.bytes
        """
        A 32 byte hash of the OTA firmware.
        Used to verify the integrity of the firmware before applying an update.
        """
        def __init__(
            self,
            *,
            reboot_ota_mode: global___OTAMode.ValueType = ...,
            ota_hash: builtins.bytes = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["ota_hash", b"ota_hash", "reboot_ota_mode", b"reboot_ota_mode"]) -> None: ...

    SESSION_PASSKEY_FIELD_NUMBER: builtins.int
    GET_CHANNEL_REQUEST_FIELD_NUMBER: builtins.int
    GET_CHANNEL_RESPONSE_FIELD_NUMBER: builtins.int
    GET_OWNER_REQUEST_FIELD_NUMBER: builtins.int
    GET_OWNER_RESPONSE_FIELD_NUMBER: builtins.int
    GET_CONFIG_REQUEST_FIELD_NUMBER: builtins.int
    GET_CONFIG_RESPONSE_FIELD_NUMBER: builtins.int
    GET_MODULE_CONFIG_REQUEST_FIELD_NUMBER: builtins.int
    GET_MODULE_CONFIG_RESPONSE_FIELD_NUMBER: builtins.int
    GET_CANNED_MESSAGE_MODULE_MESSAGES_REQUEST_FIELD_NUMBER: builtins.int
    GET_CANNED_MESSAGE_MODULE_MESSAGES_RESPONSE_FIELD_NUMBER: builtins.int
    GET_DEVICE_METADATA_REQUEST_FIELD_NUMBER: builtins.int
    GET_DEVICE_METADATA_RESPONSE_FIELD_NUMBER: builtins.int
    GET_RINGTONE_REQUEST_FIELD_NUMBER: builtins.int
    GET_RINGTONE_RESPONSE_FIELD_NUMBER: builtins.int
    GET_DEVICE_CONNECTION_STATUS_REQUEST_FIELD_NUMBER: builtins.int
    GET_DEVICE_CONNECTION_STATUS_RESPONSE_FIELD_NUMBER: builtins.int
    SET_HAM_MODE_FIELD_NUMBER: builtins.int
    GET_NODE_REMOTE_HARDWARE_PINS_REQUEST_FIELD_NUMBER: builtins.int
    GET_NODE_REMOTE_HARDWARE_PINS_RESPONSE_FIELD_NUMBER: builtins.int
    ENTER_DFU_MODE_REQUEST_FIELD_NUMBER: builtins.int
    DELETE_FILE_REQUEST_FIELD_NUMBER: builtins.int
    SET_SCALE_FIELD_NUMBER: builtins.int
    BACKUP_PREFERENCES_FIELD_NUMBER: builtins.int
    RESTORE_PREFERENCES_FIELD_NUMBER: builtins.int
    REMOVE_BACKUP_PREFERENCES_FIELD_NUMBER: builtins.int
    SEND_INPUT_EVENT_FIELD_NUMBER: builtins.int
    SET_OWNER_FIELD_NUMBER: builtins.int
    SET_CHANNEL_FIELD_NUMBER: builtins.int
    SET_CONFIG_FIELD_NUMBER: builtins.int
    SET_MODULE_CONFIG_FIELD_NUMBER: builtins.int
    SET_CANNED_MESSAGE_MODULE_MESSAGES_FIELD_NUMBER: builtins.int
    SET_RINGTONE_MESSAGE_FIELD_NUMBER: builtins.int
    REMOVE_BY_NODENUM_FIELD_NUMBER: builtins.int
    SET_FAVORITE_NODE_FIELD_NUMBER: builtins.int
    REMOVE_FAVORITE_NODE_FIELD_NUMBER: builtins.int
    SET_FIXED_POSITION_FIELD_NUMBER: builtins.int
    REMOVE_FIXED_POSITION_FIELD_NUMBER: builtins.int
    SET_TIME_ONLY_FIELD_NUMBER: builtins.int
    GET_UI_CONFIG_REQUEST_FIELD_NUMBER: builtins.int
    GET_UI_CONFIG_RESPONSE_FIELD_NUMBER: builtins.int
    STORE_UI_CONFIG_FIELD_NUMBER: builtins.int
    SET_IGNORED_NODE_FIELD_NUMBER: builtins.int
    REMOVE_IGNORED_NODE_FIELD_NUMBER: builtins.int
    TOGGLE_MUTED_NODE_FIELD_NUMBER: builtins.int
    BEGIN_EDIT_SETTINGS_FIELD_NUMBER: builtins.int
    COMMIT_EDIT_SETTINGS_FIELD_NUMBER: builtins.int
    ADD_CONTACT_FIELD_NUMBER: builtins.int
    KEY_VERIFICATION_FIELD_NUMBER: builtins.int
    FACTORY_RESET_DEVICE_FIELD_NUMBER: builtins.int
    REBOOT_OTA_SECONDS_FIELD_NUMBER: builtins.int
    EXIT_SIMULATOR_FIELD_NUMBER: builtins.int
    REBOOT_SECONDS_FIELD_NUMBER: builtins.int
    SHUTDOWN_SECONDS_FIELD_NUMBER: builtins.int
    FACTORY_RESET_CONFIG_FIELD_NUMBER: builtins.int
    NODEDB_RESET_FIELD_NUMBER: builtins.int
    OTA_REQUEST_FIELD_NUMBER: builtins.int
    SENSOR_CONFIG_FIELD_NUMBER: builtins.int
    LOCKDOWN_AUTH_FIELD_NUMBER: builtins.int
    session_passkey: builtins.bytes
    """
    The node generates this key and sends it with any get_x_response packets.
    The client MUST include the same key with any set_x commands. Key expires after 300 seconds.
    Prevents replay attacks for admin messages.
    """
    get_channel_request: builtins.int
    """
    Send the specified channel in the response to this message
    NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present)
    """
    get_owner_request: builtins.bool
    """
    Send the current owner data in the response to this message.
    """
    get_config_request: global___AdminMessage.ConfigType.ValueType
    """
    Ask for the following config data to be sent
    """
    get_module_config_request: global___AdminMessage.ModuleConfigType.ValueType
    """
    Ask for the following config data to be sent
    """
    get_canned_message_module_messages_request: builtins.bool
    """
    Get the Canned Message Module messages in the response to this message.
    """
    get_canned_message_module_messages_response: builtins.str
    """
    Get the Canned Message Module messages in the response to this message.
    """
    get_device_metadata_request: builtins.bool
    """
    Request the node to send device metadata (firmware, protobuf version, etc)
    """
    get_ringtone_request: builtins.bool
    """
    Get the Ringtone in the response to this message.
    """
    get_ringtone_response: builtins.str
    """
    Get the Ringtone in the response to this message.
    """
    get_device_connection_status_request: builtins.bool
    """
    Request the node to send it's connection status
    """
    get_node_remote_hardware_pins_request: builtins.bool
    """
    Get the mesh's nodes with their available gpio pins for RemoteHardware module use
    """
    enter_dfu_mode_request: builtins.bool
    """
    Enter (UF2) DFU mode
    Only implemented on NRF52 currently
    """
    delete_file_request: builtins.str
    """
    Delete the file by the specified path from the device
    """
    set_scale: builtins.int
    """
    Set zero and offset for scale chips
    """
    backup_preferences: global___AdminMessage.BackupLocation.ValueType
    """
    Backup the node's preferences
    """
    restore_preferences: global___AdminMessage.BackupLocation.ValueType
    """
    Restore the node's preferences
    """
    remove_backup_preferences: global___AdminMessage.BackupLocation.ValueType
    """
    Remove backups of the node's preferences
    """
    set_canned_message_module_messages: builtins.str
    """
    Set the Canned Message Module messages text.
    """
    set_ringtone_message: builtins.str
    """
    Set the ringtone for ExternalNotification.
    """
    remove_by_nodenum: builtins.int
    """
    Remove the node by the specified node-num from the NodeDB on the device
    """
    set_favorite_node: builtins.int
    """
    Set specified node-num to be favorited on the NodeDB on the device
    """
    remove_favorite_node: builtins.int
    """
    Set specified node-num to be un-favorited on the NodeDB on the device
    """
    remove_fixed_position: builtins.bool
    """
    Clear fixed position coordinates and then set position.fixed_position = false
    """
    set_time_only: builtins.int
    """
    Set time only on the node
    Convenience method to set the time on the node (as Net quality) without any other position data
    """
    get_ui_config_request: builtins.bool
    """
    Tell the node to send the stored ui data.
    """
    set_ignored_node: builtins.int
    """
    Set specified node-num to be ignored on the NodeDB on the device
    """
    remove_ignored_node: builtins.int
    """
    Set specified node-num to be un-ignored on the NodeDB on the device
    """
    toggle_muted_node: builtins.int
    """
    Set specified node-num to be muted
    """
    begin_edit_settings: builtins.bool
    """
    Begins an edit transaction for config, module config, owner, and channel settings changes
    This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
    """
    commit_edit_settings: builtins.bool
    """
    Commits an open transaction for any edits made to config, module config, owner, and channel settings
    """
    factory_reset_device: builtins.int
    """
    Tell the node to factory reset config everything; all device state and configuration will be returned to factory defaults and BLE bonds will be cleared.
    """
    reboot_ota_seconds: builtins.int
    """
    Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot)
    Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth.
    Deprecated in favor of reboot_ota_mode in 2.7.17
    """
    exit_simulator: builtins.bool
    """
    This message is only supported for the simulator Portduino build.
    If received the simulator will exit successfully.
    """
    reboot_seconds: builtins.int
    """
    Tell the node to reboot in this many seconds (or <0 to cancel reboot)
    """
    shutdown_seconds: builtins.int
    """
    Tell the node to shutdown in this many seconds (or <0 to cancel shutdown)
    """
    factory_reset_config: builtins.int
    """
    Tell the node to factory reset config; all device state and configuration will be returned to factory defaults; BLE bonds will be preserved.
    """
    nodedb_reset: builtins.bool
    """
    Tell the node to reset the nodedb.
    When true, favorites are preserved through reset.
    """
    @property
    def get_channel_response(self) -> meshtastic.protobuf.channel_pb2.Channel:
        """
        TODO: REPLACE
        """

    @property
    def get_owner_response(self) -> meshtastic.protobuf.mesh_pb2.User:
        """
        TODO: REPLACE
        """

    @property
    def get_config_response(self) -> meshtastic.protobuf.config_pb2.Config:
        """
        Send the current Config in the response to this message.
        """

    @property
    def get_module_config_response(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig:
        """
        Send the current Config in the response to this message.
        """

    @property
    def get_device_metadata_response(self) -> meshtastic.protobuf.mesh_pb2.DeviceMetadata:
        """
        Device metadata response
        """

    @property
    def get_device_connection_status_response(self) -> meshtastic.protobuf.connection_status_pb2.DeviceConnectionStatus:
        """
        Device connection status response
        """

    @property
    def set_ham_mode(self) -> global___HamParameters:
        """
        Setup a node for licensed amateur (ham) radio operation
        """

    @property
    def get_node_remote_hardware_pins_response(self) -> global___NodeRemoteHardwarePinsResponse:
        """
        Respond with the mesh's nodes with their available gpio pins for RemoteHardware module use
        """

    @property
    def send_input_event(self) -> global___AdminMessage.InputEvent:
        """
        Send an input event to the node.
        This is used to trigger physical input events like button presses, touch events, etc.
        """

    @property
    def set_owner(self) -> meshtastic.protobuf.mesh_pb2.User:
        """
        Set the owner for this node
        """

    @property
    def set_channel(self) -> meshtastic.protobuf.channel_pb2.Channel:
        """
        Set channels (using the new API).
        A special channel is the "primary channel".
        The other records are secondary channels.
        Note: only one channel can be marked as primary.
        If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
        """

    @property
    def set_config(self) -> meshtastic.protobuf.config_pb2.Config:
        """
        Set the current Config
        """

    @property
    def set_module_config(self) -> meshtastic.protobuf.module_config_pb2.ModuleConfig:
        """
        Set the current Config
        """

    @property
    def set_fixed_position(self) -> meshtastic.protobuf.mesh_pb2.Position:
        """
        Set fixed position data on the node and then set the position.fixed_position = true
        """

    @property
    def get_ui_config_response(self) -> meshtastic.protobuf.device_ui_pb2.DeviceUIConfig:
        """
        Reply stored device ui data.
        """

    @property
    def store_ui_config(self) -> meshtastic.protobuf.device_ui_pb2.DeviceUIConfig:
        """
        Tell the node to store UI data persistently.
        """

    @property
    def add_contact(self) -> global___SharedContact:
        """
        Add a contact (User) to the nodedb
        """

    @property
    def key_verification(self) -> global___KeyVerificationAdmin:
        """
        Initiate or respond to a key verification request
        """

    @property
    def ota_request(self) -> global___AdminMessage.OTAEvent:
        """
        Tell the node to reset into the OTA Loader
        """

    @property
    def sensor_config(self) -> global___SensorConfig:
        """
        Parameters and sensor configuration
        """

    @property
    def lockdown_auth(self) -> global___LockdownAuth:
        """
        Lockdown passphrase delivery / unlock / lock-now command for hardened
        firmware builds (see MESHTASTIC_LOCKDOWN). Used to provision the
        passphrase on first boot, unlock encrypted storage on subsequent
        reboots, re-verify on already-unlocked devices to authorize a new
        client connection, or immediately re-lock the device.

        Replaces the earlier scheme that repurposed SecurityConfig.private_key
        to carry passphrase bytes; that hack is retired.
        """

    def __init__(
        self,
        *,
        session_passkey: builtins.bytes = ...,
        get_channel_request: builtins.int = ...,
        get_channel_response: meshtastic.protobuf.channel_pb2.Channel | None = ...,
        get_owner_request: builtins.bool = ...,
        get_owner_response: meshtastic.protobuf.mesh_pb2.User | None = ...,
        get_config_request: global___AdminMessage.ConfigType.ValueType = ...,
        get_config_response: meshtastic.protobuf.config_pb2.Config | None = ...,
        get_module_config_request: global___AdminMessage.ModuleConfigType.ValueType = ...,
        get_module_config_response: meshtastic.protobuf.module_config_pb2.ModuleConfig | None = ...,
        get_canned_message_module_messages_request: builtins.bool = ...,
        get_canned_message_module_messages_response: builtins.str = ...,
        get_device_metadata_request: builtins.bool = ...,
        get_device_metadata_response: meshtastic.protobuf.mesh_pb2.DeviceMetadata | None = ...,
        get_ringtone_request: builtins.bool = ...,
        get_ringtone_response: builtins.str = ...,
        get_device_connection_status_request: builtins.bool = ...,
        get_device_connection_status_response: meshtastic.protobuf.connection_status_pb2.DeviceConnectionStatus | None = ...,
        set_ham_mode: global___HamParameters | None = ...,
        get_node_remote_hardware_pins_request: builtins.bool = ...,
        get_node_remote_hardware_pins_response: global___NodeRemoteHardwarePinsResponse | None = ...,
        enter_dfu_mode_request: builtins.bool = ...,
        delete_file_request: builtins.str = ...,
        set_scale: builtins.int = ...,
        backup_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
        restore_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
        remove_backup_preferences: global___AdminMessage.BackupLocation.ValueType = ...,
        send_input_event: global___AdminMessage.InputEvent | None = ...,
        set_owner: meshtastic.protobuf.mesh_pb2.User | None = ...,
        set_channel: meshtastic.protobuf.channel_pb2.Channel | None = ...,
        set_config: meshtastic.protobuf.config_pb2.Config | None = ...,
        set_module_config: meshtastic.protobuf.module_config_pb2.ModuleConfig | None = ...,
        set_canned_message_module_messages: builtins.str = ...,
        set_ringtone_message: builtins.str = ...,
        remove_by_nodenum: builtins.int = ...,
        set_favorite_node: builtins.int = ...,
        remove_favorite_node: builtins.int = ...,
        set_fixed_position: meshtastic.protobuf.mesh_pb2.Position | None = ...,
        remove_fixed_position: builtins.bool = ...,
        set_time_only: builtins.int = ...,
        get_ui_config_request: builtins.bool = ...,
        get_ui_config_response: meshtastic.protobuf.device_ui_pb2.DeviceUIConfig | None = ...,
        store_ui_config: meshtastic.protobuf.device_ui_pb2.DeviceUIConfig | None = ...,
        set_ignored_node: builtins.int = ...,
        remove_ignored_node: builtins.int = ...,
        toggle_muted_node: builtins.int = ...,
        begin_edit_settings: builtins.bool = ...,
        commit_edit_settings: builtins.bool = ...,
        add_contact: global___SharedContact | None = ...,
        key_verification: global___KeyVerificationAdmin | None = ...,
        factory_reset_device: builtins.int = ...,
        reboot_ota_seconds: builtins.int = ...,
        exit_simulator: builtins.bool = ...,
        reboot_seconds: builtins.int = ...,
        shutdown_seconds: builtins.int = ...,
        factory_reset_config: builtins.int = ...,
        nodedb_reset: builtins.bool = ...,
        ota_request: global___AdminMessage.OTAEvent | None = ...,
        sensor_config: global___SensorConfig | None = ...,
        lockdown_auth: global___LockdownAuth | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["add_contact", b"add_contact", "backup_preferences", b"backup_preferences", "begin_edit_settings", b"begin_edit_settings", "commit_edit_settings", b"commit_edit_settings", "delete_file_request", b"delete_file_request", "enter_dfu_mode_request", b"enter_dfu_mode_request", "exit_simulator", b"exit_simulator", "factory_reset_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "get_canned_message_module_messages_request", b"get_canned_message_module_messages_request", "get_canned_message_module_messages_response", b"get_canned_message_module_messages_response", "get_channel_request", b"get_channel_request", "get_channel_response", b"get_channel_response", "get_config_request", b"get_config_request", "get_config_response", b"get_config_response", "get_device_connection_status_request", b"get_device_connection_status_request", "get_device_connection_status_response", b"get_device_connection_status_response", "get_device_metadata_request", b"get_device_metadata_request", "get_device_metadata_response", b"get_device_metadata_response", "get_module_config_request", b"get_module_config_request", "get_module_config_response", b"get_module_config_response", "get_node_remote_hardware_pins_request", b"get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", b"get_node_remote_hardware_pins_response", "get_owner_request", b"get_owner_request", "get_owner_response", b"get_owner_response", "get_ringtone_request", b"get_ringtone_request", "get_ringtone_response", b"get_ringtone_response", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_response", "key_verification", b"key_verification", "lockdown_auth", b"lockdown_auth", "nodedb_reset", b"nodedb_reset", "ota_request", b"ota_request", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_backup_preferences", b"remove_backup_preferences", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "remove_ignored_node", b"remove_ignored_node", "restore_preferences", b"restore_preferences", "send_input_event", b"send_input_event", "sensor_config", b"sensor_config", "set_canned_message_module_messages", b"set_canned_message_module_messages", "set_channel", b"set_channel", "set_config", b"set_config", "set_favorite_node", b"set_favorite_node", "set_fixed_position", b"set_fixed_position", "set_ham_mode", b"set_ham_mode", "set_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config", "toggle_muted_node", b"toggle_muted_node"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["add_contact", b"add_contact", "backup_preferences", b"backup_preferences", "begin_edit_settings", b"begin_edit_settings", "commit_edit_settings", b"commit_edit_settings", "delete_file_request", b"delete_file_request", "enter_dfu_mode_request", b"enter_dfu_mode_request", "exit_simulator", b"exit_simulator", "factory_reset_config", b"factory_reset_config", "factory_reset_device", b"factory_reset_device", "get_canned_message_module_messages_request", b"get_canned_message_module_messages_request", "get_canned_message_module_messages_response", b"get_canned_message_module_messages_response", "get_channel_request", b"get_channel_request", "get_channel_response", b"get_channel_response", "get_config_request", b"get_config_request", "get_config_response", b"get_config_response", "get_device_connection_status_request", b"get_device_connection_status_request", "get_device_connection_status_response", b"get_device_connection_status_response", "get_device_metadata_request", b"get_device_metadata_request", "get_device_metadata_response", b"get_device_metadata_response", "get_module_config_request", b"get_module_config_request", "get_module_config_response", b"get_module_config_response", "get_node_remote_hardware_pins_request", b"get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", b"get_node_remote_hardware_pins_response", "get_owner_request", b"get_owner_request", "get_owner_response", b"get_owner_response", "get_ringtone_request", b"get_ringtone_request", "get_ringtone_response", b"get_ringtone_response", "get_ui_config_request", b"get_ui_config_request", "get_ui_config_response", b"get_ui_config_response", "key_verification", b"key_verification", "lockdown_auth", b"lockdown_auth", "nodedb_reset", b"nodedb_reset", "ota_request", b"ota_request", "payload_variant", b"payload_variant", "reboot_ota_seconds", b"reboot_ota_seconds", "reboot_seconds", b"reboot_seconds", "remove_backup_preferences", b"remove_backup_preferences", "remove_by_nodenum", b"remove_by_nodenum", "remove_favorite_node", b"remove_favorite_node", "remove_fixed_position", b"remove_fixed_position", "remove_ignored_node", b"remove_ignored_node", "restore_preferences", b"restore_preferences", "send_input_event", b"send_input_event", "sensor_config", b"sensor_config", "session_passkey", b"session_passkey", "set_canned_message_module_messages", b"set_canned_message_module_messages", "set_channel", b"set_channel", "set_config", b"set_config", "set_favorite_node", b"set_favorite_node", "set_fixed_position", b"set_fixed_position", "set_ham_mode", b"set_ham_mode", "set_ignored_node", b"set_ignored_node", "set_module_config", b"set_module_config", "set_owner", b"set_owner", "set_ringtone_message", b"set_ringtone_message", "set_scale", b"set_scale", "set_time_only", b"set_time_only", "shutdown_seconds", b"shutdown_seconds", "store_ui_config", b"store_ui_config", "toggle_muted_node", b"toggle_muted_node"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["payload_variant", b"payload_variant"]) -> typing.Literal["get_channel_request", "get_channel_response", "get_owner_request", "get_owner_response", "get_config_request", "get_config_response", "get_module_config_request", "get_module_config_response", "get_canned_message_module_messages_request", "get_canned_message_module_messages_response", "get_device_metadata_request", "get_device_metadata_response", "get_ringtone_request", "get_ringtone_response", "get_device_connection_status_request", "get_device_connection_status_response", "set_ham_mode", "get_node_remote_hardware_pins_request", "get_node_remote_hardware_pins_response", "enter_dfu_mode_request", "delete_file_request", "set_scale", "backup_preferences", "restore_preferences", "remove_backup_preferences", "send_input_event", "set_owner", "set_channel", "set_config", "set_module_config", "set_canned_message_module_messages", "set_ringtone_message", "remove_by_nodenum", "set_favorite_node", "remove_favorite_node", "set_fixed_position", "remove_fixed_position", "set_time_only", "get_ui_config_request", "get_ui_config_response", "store_ui_config", "set_ignored_node", "remove_ignored_node", "toggle_muted_node", "begin_edit_settings", "commit_edit_settings", "add_contact", "key_verification", "factory_reset_device", "reboot_ota_seconds", "exit_simulator", "reboot_seconds", "shutdown_seconds", "factory_reset_config", "nodedb_reset", "ota_request", "sensor_config", "lockdown_auth"] | None: ...

global___AdminMessage = AdminMessage

@typing.final
class LockdownAuth(google.protobuf.message.Message):
    """
    Lockdown passphrase delivery payload.

    One message handles three operations distinguished by content:
      - Provision (first-time): passphrase set, lock_now=false. Firmware
        generates DEK, wraps with passphrase-derived KEK, persists.
      - Unlock: passphrase set, lock_now=false. Firmware verifies
        passphrase against stored DEK, unlocks storage, authorizes the
        connection that delivered this packet.
      - Lock now: lock_now=true, passphrase ignored. Firmware revokes
        all client auth and reboots into the locked state.

    Firmware decides between provision and unlock based on its own state
    (whether a DEK file already exists). Clients do not need to track
    which case applies.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PASSPHRASE_FIELD_NUMBER: builtins.int
    BOOTS_REMAINING_FIELD_NUMBER: builtins.int
    VALID_UNTIL_EPOCH_FIELD_NUMBER: builtins.int
    LOCK_NOW_FIELD_NUMBER: builtins.int
    passphrase: builtins.bytes
    """
    Passphrase bytes (1-32). Empty when lock_now is true.
    Capped to 32 to match the proto cap on related security fields.
    """
    boots_remaining: builtins.int
    """
    Optional override of the boot-count token TTL granted on success.
    0 = use firmware default (TOKEN_DEFAULT_BOOTS).
    On reboot the firmware decrements this; when it reaches 0 the
    device boots fully locked and requires a fresh passphrase.
    """
    valid_until_epoch: builtins.int
    """
    Optional wall-clock expiry for the unlock token, as absolute
    Unix-epoch seconds. 0 = no time limit (only the boot-count TTL
    applies). On boot, if the device RTC is set and now > this value,
    the token is treated as expired.
    """
    lock_now: builtins.bool
    """
    If true, ignore passphrase fields, immediately revoke all
    connection-level admin authorization, and reboot the device into
    the locked state. Always honoured regardless of current lock state.
    """
    def __init__(
        self,
        *,
        passphrase: builtins.bytes = ...,
        boots_remaining: builtins.int = ...,
        valid_until_epoch: builtins.int = ...,
        lock_now: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["boots_remaining", b"boots_remaining", "lock_now", b"lock_now", "passphrase", b"passphrase", "valid_until_epoch", b"valid_until_epoch"]) -> None: ...

global___LockdownAuth = LockdownAuth

@typing.final
class HamParameters(google.protobuf.message.Message):
    """
    Parameters for setting up Meshtastic for ameteur radio usage
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CALL_SIGN_FIELD_NUMBER: builtins.int
    TX_POWER_FIELD_NUMBER: builtins.int
    FREQUENCY_FIELD_NUMBER: builtins.int
    SHORT_NAME_FIELD_NUMBER: builtins.int
    call_sign: builtins.str
    """
    Amateur radio call sign, eg. KD2ABC
    """
    tx_power: builtins.int
    """
    Transmit power in dBm at the LoRA transceiver, not including any amplification
    """
    frequency: builtins.float
    """
    The selected frequency of LoRA operation
    Please respect your local laws, regulations, and band plans.
    Ensure your radio is capable of operating of the selected frequency before setting this.
    """
    short_name: builtins.str
    """
    Optional short name of user
    """
    def __init__(
        self,
        *,
        call_sign: builtins.str = ...,
        tx_power: builtins.int = ...,
        frequency: builtins.float = ...,
        short_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["call_sign", b"call_sign", "frequency", b"frequency", "short_name", b"short_name", "tx_power", b"tx_power"]) -> None: ...

global___HamParameters = HamParameters

@typing.final
class NodeRemoteHardwarePinsResponse(google.protobuf.message.Message):
    """
    Response envelope for node_remote_hardware_pins
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_REMOTE_HARDWARE_PINS_FIELD_NUMBER: builtins.int
    @property
    def node_remote_hardware_pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[meshtastic.protobuf.mesh_pb2.NodeRemoteHardwarePin]:
        """
        Nodes and their respective remote hardware GPIO pins
        """

    def __init__(
        self,
        *,
        node_remote_hardware_pins: collections.abc.Iterable[meshtastic.protobuf.mesh_pb2.NodeRemoteHardwarePin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["node_remote_hardware_pins", b"node_remote_hardware_pins"]) -> None: ...

global___NodeRemoteHardwarePinsResponse = NodeRemoteHardwarePinsResponse

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

    NODE_NUM_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    SHOULD_IGNORE_FIELD_NUMBER: builtins.int
    MANUALLY_VERIFIED_FIELD_NUMBER: builtins.int
    node_num: builtins.int
    """
    The node number of the contact
    """
    should_ignore: builtins.bool
    """
    Add this contact to the blocked / ignored list
    """
    manually_verified: builtins.bool
    """
    Set the IS_KEY_MANUALLY_VERIFIED bit
    """
    @property
    def user(self) -> meshtastic.protobuf.mesh_pb2.User:
        """
        The User of the contact
        """

    def __init__(
        self,
        *,
        node_num: builtins.int = ...,
        user: meshtastic.protobuf.mesh_pb2.User | None = ...,
        should_ignore: builtins.bool = ...,
        manually_verified: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["manually_verified", b"manually_verified", "node_num", b"node_num", "should_ignore", b"should_ignore", "user", b"user"]) -> None: ...

global___SharedContact = SharedContact

@typing.final
class KeyVerificationAdmin(google.protobuf.message.Message):
    """
    This message is used by a client to initiate or complete a key verification
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _MessageType:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _MessageTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[KeyVerificationAdmin._MessageType.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        INITIATE_VERIFICATION: KeyVerificationAdmin._MessageType.ValueType  # 0
        """
        This is the first stage, where a client initiates
        """
        PROVIDE_SECURITY_NUMBER: KeyVerificationAdmin._MessageType.ValueType  # 1
        """
        After the nonce has been returned over the mesh, the client prompts for the security number
        And uses this message to provide it to the node.
        """
        DO_VERIFY: KeyVerificationAdmin._MessageType.ValueType  # 2
        """
        Once the user has compared the verification message, this message notifies the node.
        """
        DO_NOT_VERIFY: KeyVerificationAdmin._MessageType.ValueType  # 3
        """
        This is the cancel path, can be taken at any point
        """

    class MessageType(_MessageType, metaclass=_MessageTypeEnumTypeWrapper):
        """
        Three stages of this request.
        """

    INITIATE_VERIFICATION: KeyVerificationAdmin.MessageType.ValueType  # 0
    """
    This is the first stage, where a client initiates
    """
    PROVIDE_SECURITY_NUMBER: KeyVerificationAdmin.MessageType.ValueType  # 1
    """
    After the nonce has been returned over the mesh, the client prompts for the security number
    And uses this message to provide it to the node.
    """
    DO_VERIFY: KeyVerificationAdmin.MessageType.ValueType  # 2
    """
    Once the user has compared the verification message, this message notifies the node.
    """
    DO_NOT_VERIFY: KeyVerificationAdmin.MessageType.ValueType  # 3
    """
    This is the cancel path, can be taken at any point
    """

    MESSAGE_TYPE_FIELD_NUMBER: builtins.int
    REMOTE_NODENUM_FIELD_NUMBER: builtins.int
    NONCE_FIELD_NUMBER: builtins.int
    SECURITY_NUMBER_FIELD_NUMBER: builtins.int
    message_type: global___KeyVerificationAdmin.MessageType.ValueType
    remote_nodenum: builtins.int
    """
    The nodenum we're requesting
    """
    nonce: builtins.int
    """
    The nonce is used to track the connection
    """
    security_number: builtins.int
    """
    The 4 digit code generated by the remote node, and communicated outside the mesh
    """
    def __init__(
        self,
        *,
        message_type: global___KeyVerificationAdmin.MessageType.ValueType = ...,
        remote_nodenum: builtins.int = ...,
        nonce: builtins.int = ...,
        security_number: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_security_number", b"_security_number", "security_number", b"security_number"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_security_number", b"_security_number", "message_type", b"message_type", "nonce", b"nonce", "remote_nodenum", b"remote_nodenum", "security_number", b"security_number"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_security_number", b"_security_number"]) -> typing.Literal["security_number"] | None: ...

global___KeyVerificationAdmin = KeyVerificationAdmin

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

    SCD4X_CONFIG_FIELD_NUMBER: builtins.int
    SEN5X_CONFIG_FIELD_NUMBER: builtins.int
    SCD30_CONFIG_FIELD_NUMBER: builtins.int
    SHTXX_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def scd4x_config(self) -> global___SCD4X_config:
        """
        SCD4X CO2 Sensor configuration
        """

    @property
    def sen5x_config(self) -> global___SEN5X_config:
        """
        SEN5X PM Sensor configuration
        """

    @property
    def scd30_config(self) -> global___SCD30_config:
        """
        SCD30 CO2 Sensor configuration
        """

    @property
    def shtxx_config(self) -> global___SHTXX_config:
        """
        SHTXX temperature and relative humidity sensor configuration
        """

    def __init__(
        self,
        *,
        scd4x_config: global___SCD4X_config | None = ...,
        sen5x_config: global___SEN5X_config | None = ...,
        scd30_config: global___SCD30_config | None = ...,
        shtxx_config: global___SHTXX_config | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["scd30_config", b"scd30_config", "scd4x_config", b"scd4x_config", "sen5x_config", b"sen5x_config", "shtxx_config", b"shtxx_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["scd30_config", b"scd30_config", "scd4x_config", b"scd4x_config", "sen5x_config", b"sen5x_config", "shtxx_config", b"shtxx_config"]) -> None: ...

global___SensorConfig = SensorConfig

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

    SET_ASC_FIELD_NUMBER: builtins.int
    SET_TARGET_CO2_CONC_FIELD_NUMBER: builtins.int
    SET_TEMPERATURE_FIELD_NUMBER: builtins.int
    SET_ALTITUDE_FIELD_NUMBER: builtins.int
    SET_AMBIENT_PRESSURE_FIELD_NUMBER: builtins.int
    FACTORY_RESET_FIELD_NUMBER: builtins.int
    SET_POWER_MODE_FIELD_NUMBER: builtins.int
    set_asc: builtins.bool
    """
    Set Automatic self-calibration enabled
    """
    set_target_co2_conc: builtins.int
    """
    Recalibration target CO2 concentration in ppm (FRC or ASC)
    """
    set_temperature: builtins.float
    """
    Reference temperature in degC
    """
    set_altitude: builtins.int
    """
    Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
    """
    set_ambient_pressure: builtins.int
    """
    Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude)
    """
    factory_reset: builtins.bool
    """
    Perform a factory reset of the sensor
    """
    set_power_mode: builtins.bool
    """
    Power mode for sensor (true for low power, false for normal)
    """
    def __init__(
        self,
        *,
        set_asc: builtins.bool | None = ...,
        set_target_co2_conc: builtins.int | None = ...,
        set_temperature: builtins.float | None = ...,
        set_altitude: builtins.int | None = ...,
        set_ambient_pressure: builtins.int | None = ...,
        factory_reset: builtins.bool | None = ...,
        set_power_mode: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_factory_reset", b"_factory_reset", "_set_altitude", b"_set_altitude", "_set_ambient_pressure", b"_set_ambient_pressure", "_set_asc", b"_set_asc", "_set_power_mode", b"_set_power_mode", "_set_target_co2_conc", b"_set_target_co2_conc", "_set_temperature", b"_set_temperature", "factory_reset", b"factory_reset", "set_altitude", b"set_altitude", "set_ambient_pressure", b"set_ambient_pressure", "set_asc", b"set_asc", "set_power_mode", b"set_power_mode", "set_target_co2_conc", b"set_target_co2_conc", "set_temperature", b"set_temperature"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_factory_reset", b"_factory_reset", "_set_altitude", b"_set_altitude", "_set_ambient_pressure", b"_set_ambient_pressure", "_set_asc", b"_set_asc", "_set_power_mode", b"_set_power_mode", "_set_target_co2_conc", b"_set_target_co2_conc", "_set_temperature", b"_set_temperature", "factory_reset", b"factory_reset", "set_altitude", b"set_altitude", "set_ambient_pressure", b"set_ambient_pressure", "set_asc", b"set_asc", "set_power_mode", b"set_power_mode", "set_target_co2_conc", b"set_target_co2_conc", "set_temperature", b"set_temperature"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_factory_reset", b"_factory_reset"]) -> typing.Literal["factory_reset"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_altitude", b"_set_altitude"]) -> typing.Literal["set_altitude"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_ambient_pressure", b"_set_ambient_pressure"]) -> typing.Literal["set_ambient_pressure"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_asc", b"_set_asc"]) -> typing.Literal["set_asc"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_power_mode", b"_set_power_mode"]) -> typing.Literal["set_power_mode"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_target_co2_conc", b"_set_target_co2_conc"]) -> typing.Literal["set_target_co2_conc"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_temperature", b"_set_temperature"]) -> typing.Literal["set_temperature"] | None: ...

global___SCD4X_config = SCD4X_config

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

    SET_TEMPERATURE_FIELD_NUMBER: builtins.int
    SET_ONE_SHOT_MODE_FIELD_NUMBER: builtins.int
    set_temperature: builtins.float
    """
    Reference temperature in degC
    """
    set_one_shot_mode: builtins.bool
    """
    One-shot mode (true for low power - one-shot mode, false for normal - continuous mode)
    """
    def __init__(
        self,
        *,
        set_temperature: builtins.float | None = ...,
        set_one_shot_mode: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_set_one_shot_mode", b"_set_one_shot_mode", "_set_temperature", b"_set_temperature", "set_one_shot_mode", b"set_one_shot_mode", "set_temperature", b"set_temperature"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_set_one_shot_mode", b"_set_one_shot_mode", "_set_temperature", b"_set_temperature", "set_one_shot_mode", b"set_one_shot_mode", "set_temperature", b"set_temperature"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_one_shot_mode", b"_set_one_shot_mode"]) -> typing.Literal["set_one_shot_mode"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_temperature", b"_set_temperature"]) -> typing.Literal["set_temperature"] | None: ...

global___SEN5X_config = SEN5X_config

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

    SET_ASC_FIELD_NUMBER: builtins.int
    SET_TARGET_CO2_CONC_FIELD_NUMBER: builtins.int
    SET_TEMPERATURE_FIELD_NUMBER: builtins.int
    SET_ALTITUDE_FIELD_NUMBER: builtins.int
    SET_MEASUREMENT_INTERVAL_FIELD_NUMBER: builtins.int
    SOFT_RESET_FIELD_NUMBER: builtins.int
    set_asc: builtins.bool
    """
    Set Automatic self-calibration enabled
    """
    set_target_co2_conc: builtins.int
    """
    Recalibration target CO2 concentration in ppm (FRC or ASC)
    """
    set_temperature: builtins.float
    """
    Reference temperature in degC
    """
    set_altitude: builtins.int
    """
    Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
    """
    set_measurement_interval: builtins.int
    """
    Power mode for sensor (true for low power, false for normal)
    """
    soft_reset: builtins.bool
    """
    Perform a factory reset of the sensor
    """
    def __init__(
        self,
        *,
        set_asc: builtins.bool | None = ...,
        set_target_co2_conc: builtins.int | None = ...,
        set_temperature: builtins.float | None = ...,
        set_altitude: builtins.int | None = ...,
        set_measurement_interval: builtins.int | None = ...,
        soft_reset: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_set_altitude", b"_set_altitude", "_set_asc", b"_set_asc", "_set_measurement_interval", b"_set_measurement_interval", "_set_target_co2_conc", b"_set_target_co2_conc", "_set_temperature", b"_set_temperature", "_soft_reset", b"_soft_reset", "set_altitude", b"set_altitude", "set_asc", b"set_asc", "set_measurement_interval", b"set_measurement_interval", "set_target_co2_conc", b"set_target_co2_conc", "set_temperature", b"set_temperature", "soft_reset", b"soft_reset"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_set_altitude", b"_set_altitude", "_set_asc", b"_set_asc", "_set_measurement_interval", b"_set_measurement_interval", "_set_target_co2_conc", b"_set_target_co2_conc", "_set_temperature", b"_set_temperature", "_soft_reset", b"_soft_reset", "set_altitude", b"set_altitude", "set_asc", b"set_asc", "set_measurement_interval", b"set_measurement_interval", "set_target_co2_conc", b"set_target_co2_conc", "set_temperature", b"set_temperature", "soft_reset", b"soft_reset"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_altitude", b"_set_altitude"]) -> typing.Literal["set_altitude"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_asc", b"_set_asc"]) -> typing.Literal["set_asc"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_measurement_interval", b"_set_measurement_interval"]) -> typing.Literal["set_measurement_interval"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_target_co2_conc", b"_set_target_co2_conc"]) -> typing.Literal["set_target_co2_conc"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_set_temperature", b"_set_temperature"]) -> typing.Literal["set_temperature"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_soft_reset", b"_soft_reset"]) -> typing.Literal["soft_reset"] | None: ...

global___SCD30_config = SCD30_config

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

    SET_ACCURACY_FIELD_NUMBER: builtins.int
    set_accuracy: builtins.int
    """
    Accuracy mode (0 = low, 1 = medium, 2 = high)
    """
    def __init__(
        self,
        *,
        set_accuracy: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_set_accuracy", b"_set_accuracy", "set_accuracy", b"set_accuracy"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_set_accuracy", b"_set_accuracy", "set_accuracy", b"set_accuracy"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_set_accuracy", b"_set_accuracy"]) -> typing.Literal["set_accuracy"] | None: ...

global___SHTXX_config = SHTXX_config
