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

from collections import abc as _abc
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

class _PositronDataSource:
    ValueType = _typing.NewType("ValueType", _builtins.int)
    V: _TypeAlias = ValueType  # noqa: Y015

class _PositronDataSourceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PositronDataSource.ValueType], _builtins.type):
    DESCRIPTOR: _descriptor.EnumDescriptor
    MESSAGES: _PositronDataSource.ValueType  # 1
    CHATS: _PositronDataSource.ValueType  # 2
    CONTACTS: _PositronDataSource.ValueType  # 3
    GROUP_METADATA: _PositronDataSource.ValueType  # 4
    GROUP_PARTICIPANTS: _PositronDataSource.ValueType  # 5
    REACTIONS: _PositronDataSource.ValueType  # 6

class PositronDataSource(_PositronDataSource, metaclass=_PositronDataSourceEnumTypeWrapper): ...

MESSAGES: PositronDataSource.ValueType  # 1
CHATS: PositronDataSource.ValueType  # 2
CONTACTS: PositronDataSource.ValueType  # 3
GROUP_METADATA: PositronDataSource.ValueType  # 4
GROUP_PARTICIPANTS: PositronDataSource.ValueType  # 5
REACTIONS: PositronDataSource.ValueType  # 6
Global___PositronDataSource: _TypeAlias = PositronDataSource  # noqa: Y015

@_typing.final
class PositronMessage(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    @_typing.final
    class MsgKey(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        FROMME_FIELD_NUMBER: _builtins.int
        REMOTE_FIELD_NUMBER: _builtins.int
        ID_FIELD_NUMBER: _builtins.int
        PARTICIPANT_FIELD_NUMBER: _builtins.int
        fromMe: _builtins.bool
        ID: _builtins.str
        @_builtins.property
        def remote(self) -> Global___PositronMessage.WID: ...
        @_builtins.property
        def participant(self) -> Global___PositronMessage.WID: ...
        def __init__(
            self,
            *,
            fromMe: _builtins.bool | None = ...,
            remote: Global___PositronMessage.WID | None = ...,
            ID: _builtins.str | None = ...,
            participant: Global___PositronMessage.WID | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "fromMe", b"fromMe", "participant", b"participant", "remote", b"remote"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "fromMe", b"fromMe", "participant", b"participant", "remote", b"remote"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    @_typing.final
    class WID(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        SERIALIZED_FIELD_NUMBER: _builtins.int
        serialized: _builtins.str
        def __init__(
            self,
            *,
            serialized: _builtins.str | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["serialized", b"serialized"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["serialized", b"serialized"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    TIMESTAMP_FIELD_NUMBER: _builtins.int
    TYPE_FIELD_NUMBER: _builtins.int
    BODY_FIELD_NUMBER: _builtins.int
    ID_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    timestamp: _builtins.int
    type: _builtins.str
    body: _builtins.str
    JSON: _builtins.str
    @_builtins.property
    def ID(self) -> Global___PositronMessage.MsgKey: ...
    def __init__(
        self,
        *,
        timestamp: _builtins.int | None = ...,
        type: _builtins.str | None = ...,
        body: _builtins.str | None = ...,
        ID: Global___PositronMessage.MsgKey | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "body", b"body", "timestamp", b"timestamp", "type", b"type"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "body", b"body", "timestamp", b"timestamp", "type", b"type"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronMessage: _TypeAlias = PositronMessage  # noqa: Y015

@_typing.final
class PositronChat(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    NAME_FIELD_NUMBER: _builtins.int
    TIMESTAMP_FIELD_NUMBER: _builtins.int
    UNREADCOUNT_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    ID: _builtins.str
    name: _builtins.str
    timestamp: _builtins.int
    unreadCount: _builtins.int
    JSON: _builtins.str
    def __init__(
        self,
        *,
        ID: _builtins.str | None = ...,
        name: _builtins.str | None = ...,
        timestamp: _builtins.int | None = ...,
        unreadCount: _builtins.int | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "name", b"name", "timestamp", b"timestamp", "unreadCount", b"unreadCount"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "name", b"name", "timestamp", b"timestamp", "unreadCount", b"unreadCount"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronChat: _TypeAlias = PositronChat  # noqa: Y015

@_typing.final
class PositronContact(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    PHONENUMBER_FIELD_NUMBER: _builtins.int
    NAME_FIELD_NUMBER: _builtins.int
    ISADDRESSBOOKCONTACT_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    ID: _builtins.str
    phoneNumber: _builtins.str
    name: _builtins.str
    isAddressBookContact: _builtins.bool
    JSON: _builtins.str
    def __init__(
        self,
        *,
        ID: _builtins.str | None = ...,
        phoneNumber: _builtins.str | None = ...,
        name: _builtins.str | None = ...,
        isAddressBookContact: _builtins.bool | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "isAddressBookContact", b"isAddressBookContact", "name", b"name", "phoneNumber", b"phoneNumber"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "isAddressBookContact", b"isAddressBookContact", "name", b"name", "phoneNumber", b"phoneNumber"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronContact: _TypeAlias = PositronContact  # noqa: Y015

@_typing.final
class PositronGroupMetadata(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    SUBJECT_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    ID: _builtins.str
    subject: _builtins.str
    JSON: _builtins.str
    def __init__(
        self,
        *,
        ID: _builtins.str | None = ...,
        subject: _builtins.str | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "subject", b"subject"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "subject", b"subject"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronGroupMetadata: _TypeAlias = PositronGroupMetadata  # noqa: Y015

@_typing.final
class PositronGroupParticipants(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    PARTICIPANTS_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    ID: _builtins.str
    JSON: _builtins.str
    @_builtins.property
    def participants(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
    def __init__(
        self,
        *,
        ID: _builtins.str | None = ...,
        participants: _abc.Iterable[_builtins.str] | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "participants", b"participants"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronGroupParticipants: _TypeAlias = PositronGroupParticipants  # noqa: Y015

@_typing.final
class PositronReaction(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    ID_FIELD_NUMBER: _builtins.int
    PARENTMSGKEY_FIELD_NUMBER: _builtins.int
    REACTIONTEXT_FIELD_NUMBER: _builtins.int
    TIMESTAMP_FIELD_NUMBER: _builtins.int
    SENDERUSERJID_FIELD_NUMBER: _builtins.int
    JSON_FIELD_NUMBER: _builtins.int
    ID: _builtins.str
    parentMsgKey: _builtins.str
    reactionText: _builtins.str
    timestamp: _builtins.int
    senderUserJID: _builtins.str
    JSON: _builtins.str
    def __init__(
        self,
        *,
        ID: _builtins.str | None = ...,
        parentMsgKey: _builtins.str | None = ...,
        reactionText: _builtins.str | None = ...,
        timestamp: _builtins.int | None = ...,
        senderUserJID: _builtins.str | None = ...,
        JSON: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "parentMsgKey", b"parentMsgKey", "reactionText", b"reactionText", "senderUserJID", b"senderUserJID", "timestamp", b"timestamp"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["ID", b"ID", "JSON", b"JSON", "parentMsgKey", b"parentMsgKey", "reactionText", b"reactionText", "senderUserJID", b"senderUserJID", "timestamp", b"timestamp"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronReaction: _TypeAlias = PositronReaction  # noqa: Y015

@_typing.final
class PositronData(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DATASOURCE_FIELD_NUMBER: _builtins.int
    MESSAGES_FIELD_NUMBER: _builtins.int
    CHATS_FIELD_NUMBER: _builtins.int
    CONTACTS_FIELD_NUMBER: _builtins.int
    GROUPMETADATA_FIELD_NUMBER: _builtins.int
    GROUPPARTICIPANTS_FIELD_NUMBER: _builtins.int
    REACTIONS_FIELD_NUMBER: _builtins.int
    dataSource: Global___PositronDataSource.ValueType
    @_builtins.property
    def messages(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronMessage]: ...
    @_builtins.property
    def chats(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronChat]: ...
    @_builtins.property
    def contacts(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronContact]: ...
    @_builtins.property
    def groupMetadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronGroupMetadata]: ...
    @_builtins.property
    def groupParticipants(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronGroupParticipants]: ...
    @_builtins.property
    def reactions(self) -> _containers.RepeatedCompositeFieldContainer[Global___PositronReaction]: ...
    def __init__(
        self,
        *,
        dataSource: Global___PositronDataSource.ValueType | None = ...,
        messages: _abc.Iterable[Global___PositronMessage] | None = ...,
        chats: _abc.Iterable[Global___PositronChat] | None = ...,
        contacts: _abc.Iterable[Global___PositronContact] | None = ...,
        groupMetadata: _abc.Iterable[Global___PositronGroupMetadata] | None = ...,
        groupParticipants: _abc.Iterable[Global___PositronGroupParticipants] | None = ...,
        reactions: _abc.Iterable[Global___PositronReaction] | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["dataSource", b"dataSource"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["chats", b"chats", "contacts", b"contacts", "dataSource", b"dataSource", "groupMetadata", b"groupMetadata", "groupParticipants", b"groupParticipants", "messages", b"messages", "reactions", b"reactions"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PositronData: _TypeAlias = PositronData  # noqa: Y015
