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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
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 GetNotificationSettingsReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

Global___GetNotificationSettingsReq: typing_extensions.TypeAlias = GetNotificationSettingsReq

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

    ACTION_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    USER_EDITABLE_FIELD_NUMBER: builtins.int
    PUSH_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    DIGEST_FIELD_NUMBER: builtins.int
    action: builtins.str
    """e.g. "complete" for account recovery"""
    description: builtins.str
    """e.g. "Password reset is completed" """
    user_editable: builtins.bool
    """whether this is user editable"""
    push: builtins.bool
    email: builtins.bool
    digest: builtins.bool
    def __init__(
        self,
        *,
        action: builtins.str | None = ...,
        description: builtins.str | None = ...,
        user_editable: builtins.bool | None = ...,
        push: builtins.bool | None = ...,
        email: builtins.bool | None = ...,
        digest: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["action", b"action", "description", b"description", "digest", b"digest", "email", b"email", "push", b"push", "user_editable", b"user_editable"]) -> None: ...

Global___NotificationItem: typing_extensions.TypeAlias = NotificationItem

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

    TOPIC_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    ITEMS_FIELD_NUMBER: builtins.int
    topic: builtins.str
    """e.g. "badge" """
    name: builtins.str
    """e.g. "Profile badges" """
    @property
    def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NotificationItem]:
        """items in this topic"""

    def __init__(
        self,
        *,
        topic: builtins.str | None = ...,
        name: builtins.str | None = ...,
        items: collections.abc.Iterable[Global___NotificationItem] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["items", b"items", "name", b"name", "topic", b"topic"]) -> None: ...

Global___NotificationTopic: typing_extensions.TypeAlias = NotificationTopic

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

    HEADING_FIELD_NUMBER: builtins.int
    TOPICS_FIELD_NUMBER: builtins.int
    heading: builtins.str
    """a set of notification topics grouped together, e.g. "Account Settings" """
    @property
    def topics(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NotificationTopic]: ...
    def __init__(
        self,
        *,
        heading: builtins.str | None = ...,
        topics: collections.abc.Iterable[Global___NotificationTopic] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["heading", b"heading", "topics", b"topics"]) -> None: ...

Global___NotificationGroup: typing_extensions.TypeAlias = NotificationGroup

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

    TOPIC_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    DELIVERY_METHOD_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    topic: builtins.str
    action: builtins.str
    delivery_method: builtins.str
    """one of "push"/"email"/"digest" """
    enabled: builtins.bool
    def __init__(
        self,
        *,
        topic: builtins.str | None = ...,
        action: builtins.str | None = ...,
        delivery_method: builtins.str | None = ...,
        enabled: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["action", b"action", "delivery_method", b"delivery_method", "enabled", b"enabled", "topic", b"topic"]) -> None: ...

Global___SingleNotificationPreference: typing_extensions.TypeAlias = SingleNotificationPreference

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

    DO_NOT_EMAIL_ENABLED_FIELD_NUMBER: builtins.int
    EMAIL_DIGEST_ENABLED_FIELD_NUMBER: builtins.int
    GROUPS_FIELD_NUMBER: builtins.int
    do_not_email_enabled: builtins.bool
    email_digest_enabled: builtins.bool
    @property
    def groups(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NotificationGroup]: ...
    def __init__(
        self,
        *,
        do_not_email_enabled: builtins.bool | None = ...,
        email_digest_enabled: builtins.bool | None = ...,
        groups: collections.abc.Iterable[Global___NotificationGroup] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["do_not_email_enabled", b"do_not_email_enabled", "email_digest_enabled", b"email_digest_enabled", "groups", b"groups"]) -> None: ...

Global___GetNotificationSettingsRes: typing_extensions.TypeAlias = GetNotificationSettingsRes

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

    ENABLE_DO_NOT_EMAIL_FIELD_NUMBER: builtins.int
    PREFERENCES_FIELD_NUMBER: builtins.int
    enable_do_not_email: builtins.bool
    @property
    def preferences(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SingleNotificationPreference]:
        """an arbitray list of these, they are applied consequtively, any errors will error out the whole thing"""

    def __init__(
        self,
        *,
        enable_do_not_email: builtins.bool | None = ...,
        preferences: collections.abc.Iterable[Global___SingleNotificationPreference] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["enable_do_not_email", b"enable_do_not_email", "preferences", b"preferences"]) -> None: ...

Global___SetNotificationSettingsReq: typing_extensions.TypeAlias = SetNotificationSettingsReq

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

    NOTIFICATION_ID_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    TOPIC_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    ICON_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    IS_SEEN_FIELD_NUMBER: builtins.int
    notification_id: builtins.int
    topic: builtins.str
    action: builtins.str
    key: builtins.str
    title: builtins.str
    body: builtins.str
    icon: builtins.str
    url: builtins.str
    is_seen: builtins.bool
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        notification_id: builtins.int | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        topic: builtins.str | None = ...,
        action: builtins.str | None = ...,
        key: builtins.str | None = ...,
        title: builtins.str | None = ...,
        body: builtins.str | None = ...,
        icon: builtins.str | None = ...,
        url: builtins.str | None = ...,
        is_seen: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created", b"created"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["action", b"action", "body", b"body", "created", b"created", "icon", b"icon", "is_seen", b"is_seen", "key", b"key", "notification_id", b"notification_id", "title", b"title", "topic", b"topic", "url", b"url"]) -> None: ...

Global___Notification: typing_extensions.TypeAlias = Notification

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

    ONLY_UNREAD_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    only_unread: builtins.bool
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        only_unread: builtins.bool | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["only_unread", b"only_unread", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListNotificationsReq: typing_extensions.TypeAlias = ListNotificationsReq

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

    NOTIFICATIONS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def notifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Notification]: ...
    def __init__(
        self,
        *,
        notifications: collections.abc.Iterable[Global___Notification] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "notifications", b"notifications"]) -> None: ...

Global___ListNotificationsRes: typing_extensions.TypeAlias = ListNotificationsRes

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

    NOTIFICATION_ID_FIELD_NUMBER: builtins.int
    SET_SEEN_FIELD_NUMBER: builtins.int
    notification_id: builtins.int
    set_seen: builtins.bool
    def __init__(
        self,
        *,
        notification_id: builtins.int | None = ...,
        set_seen: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["notification_id", b"notification_id", "set_seen", b"set_seen"]) -> None: ...

Global___MarkNotificationSeenReq: typing_extensions.TypeAlias = MarkNotificationSeenReq

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

    LATEST_NOTIFICATION_ID_FIELD_NUMBER: builtins.int
    latest_notification_id: builtins.int
    """mark all notifications up to and including this one as seen"""
    def __init__(
        self,
        *,
        latest_notification_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["latest_notification_id", b"latest_notification_id"]) -> None: ...

Global___MarkAllNotificationsSeenReq: typing_extensions.TypeAlias = MarkAllNotificationsSeenReq

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

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

Global___GetVapidPublicKeyRes: typing_extensions.TypeAlias = GetVapidPublicKeyRes

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

    FULL_SUBSCRIPTION_JSON_FIELD_NUMBER: builtins.int
    USER_AGENT_FIELD_NUMBER: builtins.int
    full_subscription_json: builtins.str
    """the output of JSON.stirngify() on a ServiceWorkerRegistration.pushManager.subscribe
    see also: https://developer.mozilla.org/en-US/docs/Web/API/PushSubscription
    """
    user_agent: builtins.str
    """the browse user-agent, so we can tell the user what browser notifications are going to"""
    def __init__(
        self,
        *,
        full_subscription_json: builtins.str | None = ...,
        user_agent: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["full_subscription_json", b"full_subscription_json", "user_agent", b"user_agent"]) -> None: ...

Global___RegisterPushNotificationSubscriptionReq: typing_extensions.TypeAlias = RegisterPushNotificationSubscriptionReq

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

    TOKEN_FIELD_NUMBER: builtins.int
    DEVICE_NAME_FIELD_NUMBER: builtins.int
    DEVICE_TYPE_FIELD_NUMBER: builtins.int
    token: builtins.str
    """Expo push token or platform-specific token"""
    device_name: builtins.str
    """Optional metadata to show users which device is registered"""
    device_type: builtins.str
    """e.g. "ios" or "android" """
    def __init__(
        self,
        *,
        token: builtins.str | None = ...,
        device_name: builtins.str | None = ...,
        device_type: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["device_name", b"device_name", "device_type", b"device_type", "token", b"token"]) -> None: ...

Global___RegisterMobilePushNotificationSubscriptionReq: typing_extensions.TypeAlias = RegisterMobilePushNotificationSubscriptionReq
