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

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

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

    class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StatusAttribution._Type.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: StatusAttribution._Type.ValueType  # 0
        RESHARE: StatusAttribution._Type.ValueType  # 1
        EXTERNAL_SHARE: StatusAttribution._Type.ValueType  # 2
        MUSIC: StatusAttribution._Type.ValueType  # 3
        STATUS_MENTION: StatusAttribution._Type.ValueType  # 4
        GROUP_STATUS: StatusAttribution._Type.ValueType  # 5
        RL_ATTRIBUTION: StatusAttribution._Type.ValueType  # 6
        AI_CREATED: StatusAttribution._Type.ValueType  # 7

    class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
    UNKNOWN: StatusAttribution.Type.ValueType  # 0
    RESHARE: StatusAttribution.Type.ValueType  # 1
    EXTERNAL_SHARE: StatusAttribution.Type.ValueType  # 2
    MUSIC: StatusAttribution.Type.ValueType  # 3
    STATUS_MENTION: StatusAttribution.Type.ValueType  # 4
    GROUP_STATUS: StatusAttribution.Type.ValueType  # 5
    RL_ATTRIBUTION: StatusAttribution.Type.ValueType  # 6
    AI_CREATED: StatusAttribution.Type.ValueType  # 7

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

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

        class _SourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StatusAttribution.AiCreatedAttribution._Source.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN: StatusAttribution.AiCreatedAttribution._Source.ValueType  # 0
            STATUS_MIMICRY: StatusAttribution.AiCreatedAttribution._Source.ValueType  # 1

        class Source(_Source, metaclass=_SourceEnumTypeWrapper): ...
        UNKNOWN: StatusAttribution.AiCreatedAttribution.Source.ValueType  # 0
        STATUS_MIMICRY: StatusAttribution.AiCreatedAttribution.Source.ValueType  # 1

        SOURCE_FIELD_NUMBER: builtins.int
        source: global___StatusAttribution.AiCreatedAttribution.Source.ValueType
        def __init__(
            self,
            *,
            source: global___StatusAttribution.AiCreatedAttribution.Source.ValueType | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["source", b"source"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["source", b"source"]) -> None: ...

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

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

        class _SourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StatusAttribution.RLAttribution._Source.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN: StatusAttribution.RLAttribution._Source.ValueType  # 0
            RAY_BAN_META_GLASSES: StatusAttribution.RLAttribution._Source.ValueType  # 1
            OAKLEY_META_GLASSES: StatusAttribution.RLAttribution._Source.ValueType  # 2
            HYPERNOVA_GLASSES: StatusAttribution.RLAttribution._Source.ValueType  # 3

        class Source(_Source, metaclass=_SourceEnumTypeWrapper): ...
        UNKNOWN: StatusAttribution.RLAttribution.Source.ValueType  # 0
        RAY_BAN_META_GLASSES: StatusAttribution.RLAttribution.Source.ValueType  # 1
        OAKLEY_META_GLASSES: StatusAttribution.RLAttribution.Source.ValueType  # 2
        HYPERNOVA_GLASSES: StatusAttribution.RLAttribution.Source.ValueType  # 3

        SOURCE_FIELD_NUMBER: builtins.int
        source: global___StatusAttribution.RLAttribution.Source.ValueType
        def __init__(
            self,
            *,
            source: global___StatusAttribution.RLAttribution.Source.ValueType | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["source", b"source"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["source", b"source"]) -> None: ...

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

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

        class _SourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StatusAttribution.ExternalShare._Source.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN: StatusAttribution.ExternalShare._Source.ValueType  # 0
            INSTAGRAM: StatusAttribution.ExternalShare._Source.ValueType  # 1
            FACEBOOK: StatusAttribution.ExternalShare._Source.ValueType  # 2
            MESSENGER: StatusAttribution.ExternalShare._Source.ValueType  # 3
            SPOTIFY: StatusAttribution.ExternalShare._Source.ValueType  # 4
            YOUTUBE: StatusAttribution.ExternalShare._Source.ValueType  # 5
            PINTEREST: StatusAttribution.ExternalShare._Source.ValueType  # 6
            THREADS: StatusAttribution.ExternalShare._Source.ValueType  # 7

        class Source(_Source, metaclass=_SourceEnumTypeWrapper): ...
        UNKNOWN: StatusAttribution.ExternalShare.Source.ValueType  # 0
        INSTAGRAM: StatusAttribution.ExternalShare.Source.ValueType  # 1
        FACEBOOK: StatusAttribution.ExternalShare.Source.ValueType  # 2
        MESSENGER: StatusAttribution.ExternalShare.Source.ValueType  # 3
        SPOTIFY: StatusAttribution.ExternalShare.Source.ValueType  # 4
        YOUTUBE: StatusAttribution.ExternalShare.Source.ValueType  # 5
        PINTEREST: StatusAttribution.ExternalShare.Source.ValueType  # 6
        THREADS: StatusAttribution.ExternalShare.Source.ValueType  # 7

        ACTIONURL_FIELD_NUMBER: builtins.int
        SOURCE_FIELD_NUMBER: builtins.int
        DURATION_FIELD_NUMBER: builtins.int
        ACTIONFALLBACKURL_FIELD_NUMBER: builtins.int
        actionURL: builtins.str
        source: global___StatusAttribution.ExternalShare.Source.ValueType
        duration: builtins.int
        actionFallbackURL: builtins.str
        def __init__(
            self,
            *,
            actionURL: builtins.str | None = ...,
            source: global___StatusAttribution.ExternalShare.Source.ValueType | None = ...,
            duration: builtins.int | None = ...,
            actionFallbackURL: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["actionFallbackURL", b"actionFallbackURL", "actionURL", b"actionURL", "duration", b"duration", "source", b"source"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["actionFallbackURL", b"actionFallbackURL", "actionURL", b"actionURL", "duration", b"duration", "source", b"source"]) -> None: ...

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

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

        class _SourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[StatusAttribution.StatusReshare._Source.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            UNKNOWN: StatusAttribution.StatusReshare._Source.ValueType  # 0
            INTERNAL_RESHARE: StatusAttribution.StatusReshare._Source.ValueType  # 1
            MENTION_RESHARE: StatusAttribution.StatusReshare._Source.ValueType  # 2
            CHANNEL_RESHARE: StatusAttribution.StatusReshare._Source.ValueType  # 3

        class Source(_Source, metaclass=_SourceEnumTypeWrapper): ...
        UNKNOWN: StatusAttribution.StatusReshare.Source.ValueType  # 0
        INTERNAL_RESHARE: StatusAttribution.StatusReshare.Source.ValueType  # 1
        MENTION_RESHARE: StatusAttribution.StatusReshare.Source.ValueType  # 2
        CHANNEL_RESHARE: StatusAttribution.StatusReshare.Source.ValueType  # 3

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

            DURATION_FIELD_NUMBER: builtins.int
            CHANNELJID_FIELD_NUMBER: builtins.int
            CHANNELMESSAGEID_FIELD_NUMBER: builtins.int
            HASMULTIPLERESHARES_FIELD_NUMBER: builtins.int
            duration: builtins.int
            channelJID: builtins.str
            channelMessageID: builtins.int
            hasMultipleReshares: builtins.bool
            def __init__(
                self,
                *,
                duration: builtins.int | None = ...,
                channelJID: builtins.str | None = ...,
                channelMessageID: builtins.int | None = ...,
                hasMultipleReshares: builtins.bool | None = ...,
            ) -> None: ...
            def HasField(self, field_name: typing.Literal["channelJID", b"channelJID", "channelMessageID", b"channelMessageID", "duration", b"duration", "hasMultipleReshares", b"hasMultipleReshares"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing.Literal["channelJID", b"channelJID", "channelMessageID", b"channelMessageID", "duration", b"duration", "hasMultipleReshares", b"hasMultipleReshares"]) -> None: ...

        SOURCE_FIELD_NUMBER: builtins.int
        METADATA_FIELD_NUMBER: builtins.int
        source: global___StatusAttribution.StatusReshare.Source.ValueType
        @property
        def metadata(self) -> global___StatusAttribution.StatusReshare.Metadata: ...
        def __init__(
            self,
            *,
            source: global___StatusAttribution.StatusReshare.Source.ValueType | None = ...,
            metadata: global___StatusAttribution.StatusReshare.Metadata | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["metadata", b"metadata", "source", b"source"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "source", b"source"]) -> None: ...

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

        AUTHORJID_FIELD_NUMBER: builtins.int
        authorJID: builtins.str
        def __init__(
            self,
            *,
            authorJID: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["authorJID", b"authorJID"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["authorJID", b"authorJID"]) -> None: ...

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

        AUTHORNAME_FIELD_NUMBER: builtins.int
        SONGID_FIELD_NUMBER: builtins.int
        TITLE_FIELD_NUMBER: builtins.int
        AUTHOR_FIELD_NUMBER: builtins.int
        ARTISTATTRIBUTION_FIELD_NUMBER: builtins.int
        ISEXPLICIT_FIELD_NUMBER: builtins.int
        authorName: builtins.str
        songID: builtins.str
        title: builtins.str
        author: builtins.str
        artistAttribution: builtins.str
        isExplicit: builtins.bool
        def __init__(
            self,
            *,
            authorName: builtins.str | None = ...,
            songID: builtins.str | None = ...,
            title: builtins.str | None = ...,
            author: builtins.str | None = ...,
            artistAttribution: builtins.str | None = ...,
            isExplicit: builtins.bool | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["artistAttribution", b"artistAttribution", "author", b"author", "authorName", b"authorName", "isExplicit", b"isExplicit", "songID", b"songID", "title", b"title"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["artistAttribution", b"artistAttribution", "author", b"author", "authorName", b"authorName", "isExplicit", b"isExplicit", "songID", b"songID", "title", b"title"]) -> None: ...

    STATUSRESHARE_FIELD_NUMBER: builtins.int
    EXTERNALSHARE_FIELD_NUMBER: builtins.int
    MUSIC_FIELD_NUMBER: builtins.int
    GROUPSTATUS_FIELD_NUMBER: builtins.int
    RLATTRIBUTION_FIELD_NUMBER: builtins.int
    AICREATEDATTRIBUTION_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    ACTIONURL_FIELD_NUMBER: builtins.int
    type: global___StatusAttribution.Type.ValueType
    actionURL: builtins.str
    @property
    def statusReshare(self) -> global___StatusAttribution.StatusReshare: ...
    @property
    def externalShare(self) -> global___StatusAttribution.ExternalShare: ...
    @property
    def music(self) -> global___StatusAttribution.Music: ...
    @property
    def groupStatus(self) -> global___StatusAttribution.GroupStatus: ...
    @property
    def rlAttribution(self) -> global___StatusAttribution.RLAttribution: ...
    @property
    def aiCreatedAttribution(self) -> global___StatusAttribution.AiCreatedAttribution: ...
    def __init__(
        self,
        *,
        statusReshare: global___StatusAttribution.StatusReshare | None = ...,
        externalShare: global___StatusAttribution.ExternalShare | None = ...,
        music: global___StatusAttribution.Music | None = ...,
        groupStatus: global___StatusAttribution.GroupStatus | None = ...,
        rlAttribution: global___StatusAttribution.RLAttribution | None = ...,
        aiCreatedAttribution: global___StatusAttribution.AiCreatedAttribution | None = ...,
        type: global___StatusAttribution.Type.ValueType | None = ...,
        actionURL: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["actionURL", b"actionURL", "aiCreatedAttribution", b"aiCreatedAttribution", "attributionData", b"attributionData", "externalShare", b"externalShare", "groupStatus", b"groupStatus", "music", b"music", "rlAttribution", b"rlAttribution", "statusReshare", b"statusReshare", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["actionURL", b"actionURL", "aiCreatedAttribution", b"aiCreatedAttribution", "attributionData", b"attributionData", "externalShare", b"externalShare", "groupStatus", b"groupStatus", "music", b"music", "rlAttribution", b"rlAttribution", "statusReshare", b"statusReshare", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["attributionData", b"attributionData"]) -> typing.Literal["statusReshare", "externalShare", "music", "groupStatus", "rlAttribution", "aiCreatedAttribution"] | None: ...

global___StatusAttribution = StatusAttribution
