"""
@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

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

        class _EphemeralityTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MessageApplication.EphemeralSetting._EphemeralityType.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN: MessageApplication.EphemeralSetting._EphemeralityType.ValueType  # 0
            SEEN_ONCE: MessageApplication.EphemeralSetting._EphemeralityType.ValueType  # 1
            SEEN_BASED_WITH_TIMER: MessageApplication.EphemeralSetting._EphemeralityType.ValueType  # 2
            SEND_BASED_WITH_TIMER: MessageApplication.EphemeralSetting._EphemeralityType.ValueType  # 3

        class EphemeralityType(_EphemeralityType, metaclass=_EphemeralityTypeEnumTypeWrapper): ...
        UNKNOWN: MessageApplication.EphemeralSetting.EphemeralityType.ValueType  # 0
        SEEN_ONCE: MessageApplication.EphemeralSetting.EphemeralityType.ValueType  # 1
        SEEN_BASED_WITH_TIMER: MessageApplication.EphemeralSetting.EphemeralityType.ValueType  # 2
        SEND_BASED_WITH_TIMER: MessageApplication.EphemeralSetting.EphemeralityType.ValueType  # 3

        EPHEMERALEXPIRATION_FIELD_NUMBER: builtins.int
        EPHEMERALSETTINGTIMESTAMP_FIELD_NUMBER: builtins.int
        EPHEMERALITYTYPE_FIELD_NUMBER: builtins.int
        ISEPHEMERALSETTINGRESET_FIELD_NUMBER: builtins.int
        ephemeralExpiration: builtins.int
        ephemeralSettingTimestamp: builtins.int
        ephemeralityType: global___MessageApplication.EphemeralSetting.EphemeralityType.ValueType
        isEphemeralSettingReset: builtins.bool
        def __init__(
            self,
            *,
            ephemeralExpiration: builtins.int | None = ...,
            ephemeralSettingTimestamp: builtins.int | None = ...,
            ephemeralityType: global___MessageApplication.EphemeralSetting.EphemeralityType.ValueType | None = ...,
            isEphemeralSettingReset: builtins.bool | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralityType", b"ephemeralityType", "isEphemeralSettingReset", b"isEphemeralSettingReset"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["ephemeralExpiration", b"ephemeralExpiration", "ephemeralSettingTimestamp", b"ephemeralSettingTimestamp", "ephemeralityType", b"ephemeralityType", "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
