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

from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
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

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

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

    class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[StatusAttribution._Type.ValueType], _builtins.type):
        DESCRIPTOR: _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
        LAYOUTS: StatusAttribution._Type.ValueType  # 8

    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
    LAYOUTS: StatusAttribution.Type.ValueType  # 8

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

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

        class _SourceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[StatusAttribution.AiCreatedAttribution._Source.ValueType], _builtins.type):
            DESCRIPTOR: _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: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["source", b"source"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["source", b"source"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

        class _SourceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[StatusAttribution.RLAttribution._Source.ValueType], _builtins.type):
            DESCRIPTOR: _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: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["source", b"source"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["source", b"source"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

        class _SourceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[StatusAttribution.ExternalShare._Source.ValueType], _builtins.type):
            DESCRIPTOR: _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
            APPLE_MUSIC: StatusAttribution.ExternalShare._Source.ValueType  # 8
            SHARECHAT: StatusAttribution.ExternalShare._Source.ValueType  # 9
            GOOGLE_PHOTOS: StatusAttribution.ExternalShare._Source.ValueType  # 10

        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
        APPLE_MUSIC: StatusAttribution.ExternalShare.Source.ValueType  # 8
        SHARECHAT: StatusAttribution.ExternalShare.Source.ValueType  # 9
        GOOGLE_PHOTOS: StatusAttribution.ExternalShare.Source.ValueType  # 10

        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: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["actionFallbackURL", b"actionFallbackURL", "actionURL", b"actionURL", "duration", b"duration", "source", b"source"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["actionFallbackURL", b"actionFallbackURL", "actionURL", b"actionURL", "duration", b"duration", "source", b"source"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

        class _SourceEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[StatusAttribution.StatusReshare._Source.ValueType], _builtins.type):
            DESCRIPTOR: _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
            FORWARD: StatusAttribution.StatusReshare._Source.ValueType  # 4

        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
        FORWARD: StatusAttribution.StatusReshare.Source.ValueType  # 4

        @_typing.final
        class Metadata(_message.Message):
            DESCRIPTOR: _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: ...
            _HasFieldArgType: _TypeAlias = _typing.Literal["channelJID", b"channelJID", "channelMessageID", b"channelMessageID", "duration", b"duration", "hasMultipleReshares", b"hasMultipleReshares"]  # noqa: Y015
            def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["channelJID", b"channelJID", "channelMessageID", b"channelMessageID", "duration", b"duration", "hasMultipleReshares", b"hasMultipleReshares"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

        SOURCE_FIELD_NUMBER: _builtins.int
        METADATA_FIELD_NUMBER: _builtins.int
        source: Global___StatusAttribution.StatusReshare.Source.ValueType
        @_builtins.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: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "source", b"source"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "source", b"source"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

    @_typing.final
    class Music(_message.Message):
        DESCRIPTOR: _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: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "author", b"author", "authorName", b"authorName", "isExplicit", b"isExplicit", "songID", b"songID", "title", b"title"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["artistAttribution", b"artistAttribution", "author", b"author", "authorName", b"authorName", "isExplicit", b"isExplicit", "songID", b"songID", "title", b"title"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> 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
    @_builtins.property
    def statusReshare(self) -> Global___StatusAttribution.StatusReshare: ...
    @_builtins.property
    def externalShare(self) -> Global___StatusAttribution.ExternalShare: ...
    @_builtins.property
    def music(self) -> Global___StatusAttribution.Music: ...
    @_builtins.property
    def groupStatus(self) -> Global___StatusAttribution.GroupStatus: ...
    @_builtins.property
    def rlAttribution(self) -> Global___StatusAttribution.RLAttribution: ...
    @_builtins.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: ...
    _HasFieldArgType: _TypeAlias = _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"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _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"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_attributionData: _TypeAlias = _typing.Literal["statusReshare", "externalShare", "music", "groupStatus", "rlAttribution", "aiCreatedAttribution"]  # noqa: Y015
    _WhichOneofArgType_attributionData: _TypeAlias = _typing.Literal["attributionData", b"attributionData"]  # noqa: Y015
    def WhichOneof(self, oneof_group: _WhichOneofArgType_attributionData) -> _WhichOneofReturnType_attributionData | None: ...

Global___StatusAttribution: _TypeAlias = StatusAttribution  # noqa: Y015
