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

import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing
import waCommon.WACommon_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

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

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

        class _ThreadTypeEnumTypeWrapper(
            google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[
                MessageApplication.Metadata._ThreadType.ValueType
            ],
            builtins.type,
        ):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            DEFAULT: MessageApplication.Metadata._ThreadType.ValueType  # 0
            VANISH_MODE: MessageApplication.Metadata._ThreadType.ValueType  # 1
            DISAPPEARING_MESSAGES: (
                MessageApplication.Metadata._ThreadType.ValueType
            )  # 2

        class ThreadType(_ThreadType, metaclass=_ThreadTypeEnumTypeWrapper): ...
        DEFAULT: MessageApplication.Metadata.ThreadType.ValueType  # 0
        VANISH_MODE: MessageApplication.Metadata.ThreadType.ValueType  # 1
        DISAPPEARING_MESSAGES: MessageApplication.Metadata.ThreadType.ValueType  # 2

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

            STANZAID_FIELD_NUMBER: builtins.int
            REMOTEJID_FIELD_NUMBER: builtins.int
            PARTICIPANT_FIELD_NUMBER: builtins.int
            PAYLOAD_FIELD_NUMBER: builtins.int
            stanzaID: builtins.str
            remoteJID: builtins.str
            participant: builtins.str
            @property
            def payload(self) -> global___MessageApplication.Payload: ...
            def __init__(
                self,
                *,
                stanzaID: builtins.str | None = ...,
                remoteJID: builtins.str | None = ...,
                participant: builtins.str | None = ...,
                payload: global___MessageApplication.Payload | None = ...,
            ) -> None: ...
            def HasField(
                self,
                field_name: typing.Literal[
                    "participant",
                    b"participant",
                    "payload",
                    b"payload",
                    "remoteJID",
                    b"remoteJID",
                    "stanzaID",
                    b"stanzaID",
                ],
            ) -> builtins.bool: ...
            def ClearField(
                self,
                field_name: typing.Literal[
                    "participant",
                    b"participant",
                    "payload",
                    b"payload",
                    "remoteJID",
                    b"remoteJID",
                    "stanzaID",
                    b"stanzaID",
                ],
            ) -> None: ...

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

            CHATJID_FIELD_NUMBER: builtins.int
            EPHEMERALSETTING_FIELD_NUMBER: builtins.int
            chatJID: builtins.str
            @property
            def ephemeralSetting(
                self,
            ) -> global___MessageApplication.EphemeralSetting: ...
            def __init__(
                self,
                *,
                chatJID: builtins.str | None = ...,
                ephemeralSetting: global___MessageApplication.EphemeralSetting
                | None = ...,
            ) -> None: ...
            def HasField(
                self,
                field_name: typing.Literal[
                    "chatJID", b"chatJID", "ephemeralSetting", b"ephemeralSetting"
                ],
            ) -> builtins.bool: ...
            def ClearField(
                self,
                field_name: typing.Literal[
                    "chatJID", b"chatJID", "ephemeralSetting", b"ephemeralSetting"
                ],
            ) -> None: ...

        CHATEPHEMERALSETTING_FIELD_NUMBER: builtins.int
        EPHEMERALSETTINGLIST_FIELD_NUMBER: builtins.int
        EPHEMERALSHAREDSECRET_FIELD_NUMBER: builtins.int
        FORWARDINGSCORE_FIELD_NUMBER: builtins.int
        ISFORWARDED_FIELD_NUMBER: builtins.int
        BUSINESSMETADATA_FIELD_NUMBER: builtins.int
        FRANKINGKEY_FIELD_NUMBER: builtins.int
        FRANKINGVERSION_FIELD_NUMBER: builtins.int
        QUOTEDMESSAGE_FIELD_NUMBER: builtins.int
        THREADTYPE_FIELD_NUMBER: builtins.int
        READONLYMETADATADATACLASS_FIELD_NUMBER: builtins.int
        GROUPID_FIELD_NUMBER: builtins.int
        GROUPSIZE_FIELD_NUMBER: builtins.int
        GROUPINDEX_FIELD_NUMBER: builtins.int
        BOTRESPONSEID_FIELD_NUMBER: builtins.int
        COLLAPSIBLEID_FIELD_NUMBER: builtins.int
        SECONDARYOTID_FIELD_NUMBER: builtins.int
        ephemeralSharedSecret: builtins.bytes
        forwardingScore: builtins.int
        isForwarded: builtins.bool
        frankingKey: builtins.bytes
        frankingVersion: builtins.int
        threadType: global___MessageApplication.Metadata.ThreadType.ValueType
        readonlyMetadataDataclass: builtins.str
        groupID: builtins.str
        groupSize: builtins.int
        groupIndex: builtins.int
        botResponseID: builtins.str
        collapsibleID: builtins.str
        secondaryOtid: builtins.str
        @property
        def chatEphemeralSetting(
            self,
        ) -> global___MessageApplication.EphemeralSetting: ...
        @property
        def ephemeralSettingList(
            self,
        ) -> global___MessageApplication.Metadata.EphemeralSettingMap: ...
        @property
        def businessMetadata(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def quotedMessage(
            self,
        ) -> global___MessageApplication.Metadata.QuotedMessage: ...
        def __init__(
            self,
            *,
            chatEphemeralSetting: global___MessageApplication.EphemeralSetting
            | None = ...,
            ephemeralSettingList: global___MessageApplication.Metadata.EphemeralSettingMap
            | None = ...,
            ephemeralSharedSecret: builtins.bytes | None = ...,
            forwardingScore: builtins.int | None = ...,
            isForwarded: builtins.bool | None = ...,
            businessMetadata: waCommon.WACommon_pb2.SubProtocol | None = ...,
            frankingKey: builtins.bytes | None = ...,
            frankingVersion: builtins.int | None = ...,
            quotedMessage: global___MessageApplication.Metadata.QuotedMessage
            | None = ...,
            threadType: global___MessageApplication.Metadata.ThreadType.ValueType
            | None = ...,
            readonlyMetadataDataclass: builtins.str | None = ...,
            groupID: builtins.str | None = ...,
            groupSize: builtins.int | None = ...,
            groupIndex: builtins.int | None = ...,
            botResponseID: builtins.str | None = ...,
            collapsibleID: builtins.str | None = ...,
            secondaryOtid: builtins.str | None = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing.Literal[
                "botResponseID",
                b"botResponseID",
                "businessMetadata",
                b"businessMetadata",
                "chatEphemeralSetting",
                b"chatEphemeralSetting",
                "collapsibleID",
                b"collapsibleID",
                "ephemeral",
                b"ephemeral",
                "ephemeralSettingList",
                b"ephemeralSettingList",
                "ephemeralSharedSecret",
                b"ephemeralSharedSecret",
                "forwardingScore",
                b"forwardingScore",
                "frankingKey",
                b"frankingKey",
                "frankingVersion",
                b"frankingVersion",
                "groupID",
                b"groupID",
                "groupIndex",
                b"groupIndex",
                "groupSize",
                b"groupSize",
                "isForwarded",
                b"isForwarded",
                "quotedMessage",
                b"quotedMessage",
                "readonlyMetadataDataclass",
                b"readonlyMetadataDataclass",
                "secondaryOtid",
                b"secondaryOtid",
                "threadType",
                b"threadType",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing.Literal[
                "botResponseID",
                b"botResponseID",
                "businessMetadata",
                b"businessMetadata",
                "chatEphemeralSetting",
                b"chatEphemeralSetting",
                "collapsibleID",
                b"collapsibleID",
                "ephemeral",
                b"ephemeral",
                "ephemeralSettingList",
                b"ephemeralSettingList",
                "ephemeralSharedSecret",
                b"ephemeralSharedSecret",
                "forwardingScore",
                b"forwardingScore",
                "frankingKey",
                b"frankingKey",
                "frankingVersion",
                b"frankingVersion",
                "groupID",
                b"groupID",
                "groupIndex",
                b"groupIndex",
                "groupSize",
                b"groupSize",
                "isForwarded",
                b"isForwarded",
                "quotedMessage",
                b"quotedMessage",
                "readonlyMetadataDataclass",
                b"readonlyMetadataDataclass",
                "secondaryOtid",
                b"secondaryOtid",
                "threadType",
                b"threadType",
            ],
        ) -> None: ...
        def WhichOneof(
            self, oneof_group: typing.Literal["ephemeral", b"ephemeral"]
        ) -> (
            typing.Literal[
                "chatEphemeralSetting", "ephemeralSettingList", "ephemeralSharedSecret"
            ]
            | None
        ): ...

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

        CORECONTENT_FIELD_NUMBER: builtins.int
        SIGNAL_FIELD_NUMBER: builtins.int
        APPLICATIONDATA_FIELD_NUMBER: builtins.int
        SUBPROTOCOL_FIELD_NUMBER: builtins.int
        @property
        def coreContent(self) -> global___MessageApplication.Content: ...
        @property
        def signal(self) -> global___MessageApplication.Signal: ...
        @property
        def applicationData(self) -> global___MessageApplication.ApplicationData: ...
        @property
        def subProtocol(self) -> global___MessageApplication.SubProtocolPayload: ...
        def __init__(
            self,
            *,
            coreContent: global___MessageApplication.Content | None = ...,
            signal: global___MessageApplication.Signal | None = ...,
            applicationData: global___MessageApplication.ApplicationData | None = ...,
            subProtocol: global___MessageApplication.SubProtocolPayload | None = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing.Literal[
                "applicationData",
                b"applicationData",
                "content",
                b"content",
                "coreContent",
                b"coreContent",
                "signal",
                b"signal",
                "subProtocol",
                b"subProtocol",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing.Literal[
                "applicationData",
                b"applicationData",
                "content",
                b"content",
                "coreContent",
                b"coreContent",
                "signal",
                b"signal",
                "subProtocol",
                b"subProtocol",
            ],
        ) -> None: ...
        def WhichOneof(
            self, oneof_group: typing.Literal["content", b"content"]
        ) -> (
            typing.Literal["coreContent", "signal", "applicationData", "subProtocol"]
            | None
        ): ...

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

        CONSUMERMESSAGE_FIELD_NUMBER: builtins.int
        BUSINESSMESSAGE_FIELD_NUMBER: builtins.int
        PAYMENTMESSAGE_FIELD_NUMBER: builtins.int
        MULTIDEVICE_FIELD_NUMBER: builtins.int
        VOIP_FIELD_NUMBER: builtins.int
        ARMADILLO_FIELD_NUMBER: builtins.int
        FUTUREPROOF_FIELD_NUMBER: builtins.int
        futureProof: waCommon.WACommon_pb2.FutureProofBehavior.ValueType
        @property
        def consumerMessage(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def businessMessage(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def paymentMessage(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def multiDevice(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def voip(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        @property
        def armadillo(self) -> waCommon.WACommon_pb2.SubProtocol: ...
        def __init__(
            self,
            *,
            consumerMessage: waCommon.WACommon_pb2.SubProtocol | None = ...,
            businessMessage: waCommon.WACommon_pb2.SubProtocol | None = ...,
            paymentMessage: waCommon.WACommon_pb2.SubProtocol | None = ...,
            multiDevice: waCommon.WACommon_pb2.SubProtocol | None = ...,
            voip: waCommon.WACommon_pb2.SubProtocol | None = ...,
            armadillo: waCommon.WACommon_pb2.SubProtocol | None = ...,
            futureProof: waCommon.WACommon_pb2.FutureProofBehavior.ValueType
            | None = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing.Literal[
                "armadillo",
                b"armadillo",
                "businessMessage",
                b"businessMessage",
                "consumerMessage",
                b"consumerMessage",
                "futureProof",
                b"futureProof",
                "multiDevice",
                b"multiDevice",
                "paymentMessage",
                b"paymentMessage",
                "subProtocol",
                b"subProtocol",
                "voip",
                b"voip",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing.Literal[
                "armadillo",
                b"armadillo",
                "businessMessage",
                b"businessMessage",
                "consumerMessage",
                b"consumerMessage",
                "futureProof",
                b"futureProof",
                "multiDevice",
                b"multiDevice",
                "paymentMessage",
                b"paymentMessage",
                "subProtocol",
                b"subProtocol",
                "voip",
                b"voip",
            ],
        ) -> None: ...
        def WhichOneof(
            self, oneof_group: typing.Literal["subProtocol", b"subProtocol"]
        ) -> (
            typing.Literal[
                "consumerMessage",
                "businessMessage",
                "paymentMessage",
                "multiDevice",
                "voip",
                "armadillo",
            ]
            | None
        ): ...

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

        def __init__(
            self,
        ) -> None: ...

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

        def __init__(
            self,
        ) -> None: ...

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

        def __init__(
            self,
        ) -> None: ...

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

        EPHEMERALEXPIRATION_FIELD_NUMBER: builtins.int
        EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: builtins.int
        ISEPHEMERALSETTINGRESET_FIELD_NUMBER: builtins.int
        ephemeralExpiration: builtins.int
        ephemeralSettingTimestamp: builtins.int
        isEphemeralSettingReset: builtins.bool
        def __init__(
            self,
            *,
            ephemeralExpiration: builtins.int | None = ...,
            ephemeralSettingTimestamp: builtins.int | None = ...,
            isEphemeralSettingReset: builtins.bool | None = ...,
        ) -> None: ...
        def HasField(
            self,
            field_name: typing.Literal[
                "ephemeralExpiration",
                b"ephemeralExpiration",
                "ephemeralSettingTimestamp",
                b"ephemeralSettingTimestamp",
                "isEphemeralSettingReset",
                b"isEphemeralSettingReset",
            ],
        ) -> builtins.bool: ...
        def ClearField(
            self,
            field_name: typing.Literal[
                "ephemeralExpiration",
                b"ephemeralExpiration",
                "ephemeralSettingTimestamp",
                b"ephemeralSettingTimestamp",
                "isEphemeralSettingReset",
                b"isEphemeralSettingReset",
            ],
        ) -> None: ...

    PAYLOAD_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def payload(self) -> global___MessageApplication.Payload: ...
    @property
    def metadata(self) -> global___MessageApplication.Metadata: ...
    def __init__(
        self,
        *,
        payload: global___MessageApplication.Payload | None = ...,
        metadata: global___MessageApplication.Metadata | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata", "payload", b"payload"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing.Literal["metadata", b"metadata", "payload", b"payload"]
    ) -> None: ...

global___MessageApplication = MessageApplication
