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

import api_pb2
import builtins
import collections.abc
import communities_pb2
import events_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import google.protobuf.wrappers_pb2
import groups_pb2
import pages_pb2
import requests_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 Area(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAT_FIELD_NUMBER: builtins.int
    LNG_FIELD_NUMBER: builtins.int
    RADIUS_FIELD_NUMBER: builtins.int
    lat: builtins.float
    lng: builtins.float
    radius: builtins.float
    """m"""
    def __init__(
        self,
        *,
        lat: builtins.float | None = ...,
        lng: builtins.float | None = ...,
        radius: builtins.float | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["lat", b"lat", "lng", b"lng", "radius", b"radius"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Area: typing_extensions.TypeAlias = Area

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

    LAT_MIN_FIELD_NUMBER: builtins.int
    LAT_MAX_FIELD_NUMBER: builtins.int
    LNG_MIN_FIELD_NUMBER: builtins.int
    LNG_MAX_FIELD_NUMBER: builtins.int
    lat_min: builtins.float
    lat_max: builtins.float
    lng_min: builtins.float
    lng_max: builtins.float
    def __init__(
        self,
        *,
        lat_min: builtins.float | None = ...,
        lat_max: builtins.float | None = ...,
        lng_min: builtins.float | None = ...,
        lng_max: builtins.float | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["lat_max", b"lat_max", "lat_min", b"lat_min", "lng_max", b"lng_max", "lng_min", b"lng_min"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RectArea: typing_extensions.TypeAlias = RectArea

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

    QUERY_FIELD_NUMBER: builtins.int
    INCLUDE_USERS_FIELD_NUMBER: builtins.int
    INCLUDE_COMMUNITIES_FIELD_NUMBER: builtins.int
    INCLUDE_GROUPS_FIELD_NUMBER: builtins.int
    INCLUDE_PLACES_FIELD_NUMBER: builtins.int
    INCLUDE_GUIDES_FIELD_NUMBER: builtins.int
    INCLUDE_EVENTS_FIELD_NUMBER: builtins.int
    TITLE_ONLY_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    query: builtins.str
    """there are two modes: full text search and fuzzy title search (trigram), see `//docs/search.md` for overview
    in normal mode we use full text to search through all content (including titles) plus fuzzy search through titles
    only, in rankings fuzzy has a bit higher weight because of the inner workings
    when you set title_only, we don't do full text search, only fuzzy title search
    in full text search, you can use the following operators:
    * `"quote text"`` to search for a chunk of consequtive text
    * `or` to search for one or another search term
    * `-` (minus) to ignore a search term
    in the fuzzy search these have no meaning
    """
    include_users: builtins.bool
    include_communities: builtins.bool
    include_groups: builtins.bool
    include_places: builtins.bool
    include_guides: builtins.bool
    include_events: builtins.bool
    """bool include_discussions = 9;"""
    title_only: builtins.bool
    """restrictions on area
    oneof search_in {
      // search in given area
      Area search_in_area = 11;
      // search inside the area defined by the community
      int64 search_in_community_id = 12;
    }

    whether to only perform a trigram based search on titles and not do full text search
    """
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        query: builtins.str | None = ...,
        include_users: builtins.bool | None = ...,
        include_communities: builtins.bool | None = ...,
        include_groups: builtins.bool | None = ...,
        include_places: builtins.bool | None = ...,
        include_guides: builtins.bool | None = ...,
        include_events: builtins.bool | None = ...,
        title_only: builtins.bool | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["include_communities", b"include_communities", "include_events", b"include_events", "include_groups", b"include_groups", "include_guides", b"include_guides", "include_places", b"include_places", "include_users", b"include_users", "page_size", b"page_size", "page_token", b"page_token", "query", b"query", "title_only", b"title_only"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SearchReq: typing_extensions.TypeAlias = SearchReq

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

    RANK_FIELD_NUMBER: builtins.int
    SNIPPET_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    COMMUNITY_FIELD_NUMBER: builtins.int
    GROUP_FIELD_NUMBER: builtins.int
    PLACE_FIELD_NUMBER: builtins.int
    GUIDE_FIELD_NUMBER: builtins.int
    EVENT_FIELD_NUMBER: builtins.int
    rank: builtins.float
    """a ranking score, higher is more relevant"""
    snippet: builtins.str
    """a snippet of the matched parts of the document"""
    @property
    def user(self) -> api_pb2.User: ...
    @property
    def community(self) -> communities_pb2.Community: ...
    @property
    def group(self) -> groups_pb2.Group: ...
    @property
    def place(self) -> pages_pb2.Page: ...
    @property
    def guide(self) -> pages_pb2.Page: ...
    @property
    def event(self) -> events_pb2.Event:
        """org.couchers.api.discussions.Discussion discussion = 9;"""

    def __init__(
        self,
        *,
        rank: builtins.float | None = ...,
        snippet: builtins.str | None = ...,
        user: api_pb2.User | None = ...,
        community: communities_pb2.Community | None = ...,
        group: groups_pb2.Group | None = ...,
        place: pages_pb2.Page | None = ...,
        guide: pages_pb2.Page | None = ...,
        event: events_pb2.Event | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["community", b"community", "event", b"event", "group", b"group", "guide", b"guide", "place", b"place", "result", b"result", "user", b"user"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["community", b"community", "event", b"event", "group", b"group", "guide", b"guide", "place", b"place", "rank", b"rank", "result", b"result", "snippet", b"snippet", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_result: typing_extensions.TypeAlias = typing.Literal["user", "community", "group", "place", "guide", "event"]
    _WhichOneofArgType_result: typing_extensions.TypeAlias = typing.Literal["result", b"result"]
    def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...

Global___Result: typing_extensions.TypeAlias = Result

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

    RESULTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Result]:
        """sorted with highest rank first"""

    def __init__(
        self,
        *,
        results: collections.abc.Iterable[Global___Result] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["next_page_token", b"next_page_token", "results", b"results"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SearchRes: typing_extensions.TypeAlias = SearchRes

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

    EXACTLY_USER_IDS_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    QUERY_NAME_ONLY_FIELD_NUMBER: builtins.int
    LAST_ACTIVE_FIELD_NUMBER: builtins.int
    SEARCH_IN_AREA_FIELD_NUMBER: builtins.int
    SEARCH_IN_COMMUNITY_ID_FIELD_NUMBER: builtins.int
    SEARCH_IN_RECTANGLE_FIELD_NUMBER: builtins.int
    HOSTING_STATUS_FILTER_FIELD_NUMBER: builtins.int
    SMOKING_LOCATION_FILTER_FIELD_NUMBER: builtins.int
    SLEEPING_ARRANGEMENT_FILTER_FIELD_NUMBER: builtins.int
    PARKING_DETAILS_FILTER_FIELD_NUMBER: builtins.int
    MEETUP_STATUS_FILTER_FIELD_NUMBER: builtins.int
    LANGUAGE_ABILITY_FILTER_FIELD_NUMBER: builtins.int
    GUESTS_FIELD_NUMBER: builtins.int
    ONLY_WITH_REFERENCES_FIELD_NUMBER: builtins.int
    ONLY_WITH_STRONG_VERIFICATION_FIELD_NUMBER: builtins.int
    AGE_MIN_FIELD_NUMBER: builtins.int
    AGE_MAX_FIELD_NUMBER: builtins.int
    LAST_MINUTE_FIELD_NUMBER: builtins.int
    HAS_PETS_FIELD_NUMBER: builtins.int
    ACCEPTS_PETS_FIELD_NUMBER: builtins.int
    HAS_KIDS_FIELD_NUMBER: builtins.int
    ACCEPTS_KIDS_FIELD_NUMBER: builtins.int
    HAS_HOUSEMATES_FIELD_NUMBER: builtins.int
    WHEELCHAIR_ACCESSIBLE_FIELD_NUMBER: builtins.int
    SMOKES_AT_HOME_FIELD_NUMBER: builtins.int
    DRINKING_ALLOWED_FIELD_NUMBER: builtins.int
    DRINKS_AT_HOME_FIELD_NUMBER: builtins.int
    PARKING_FIELD_NUMBER: builtins.int
    CAMPING_OK_FIELD_NUMBER: builtins.int
    PROFILE_COMPLETED_FIELD_NUMBER: builtins.int
    SAME_GENDER_ONLY_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    query_name_only: builtins.bool
    """whether the query (if any) should only search through username and display name"""
    search_in_community_id: builtins.int
    """search inside the area defined by the community"""
    only_with_references: builtins.bool
    only_with_strong_verification: builtins.bool
    same_gender_only: builtins.bool
    page_size: builtins.int
    page_token: builtins.str
    @property
    def exactly_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """if this field is present, we filter to exactly these users (any invalid ids are ignored)"""

    @property
    def query(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def last_active(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """coarsened"""

    @property
    def search_in_area(self) -> Global___Area:
        """search in given area"""

    @property
    def search_in_rectangle(self) -> Global___RectArea: ...
    @property
    def hosting_status_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[api_pb2.HostingStatus.ValueType]: ...
    @property
    def smoking_location_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[api_pb2.SmokingLocation.ValueType]: ...
    @property
    def sleeping_arrangement_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[api_pb2.SleepingArrangement.ValueType]: ...
    @property
    def parking_details_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[api_pb2.ParkingDetails.ValueType]: ...
    @property
    def meetup_status_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[api_pb2.MeetupStatus.ValueType]: ...
    @property
    def language_ability_filter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[api_pb2.LanguageAbility]: ...
    @property
    def guests(self) -> google.protobuf.wrappers_pb2.UInt32Value: ...
    @property
    def age_min(self) -> google.protobuf.wrappers_pb2.UInt32Value:
        """bool friends_only = 13;"""

    @property
    def age_max(self) -> google.protobuf.wrappers_pb2.UInt32Value: ...
    @property
    def last_minute(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def has_pets(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def accepts_pets(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def has_kids(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def accepts_kids(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def has_housemates(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def wheelchair_accessible(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def smokes_at_home(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def drinking_allowed(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def drinks_at_home(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def parking(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def camping_ok(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def profile_completed(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    def __init__(
        self,
        *,
        exactly_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
        query: google.protobuf.wrappers_pb2.StringValue | None = ...,
        query_name_only: builtins.bool | None = ...,
        last_active: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        search_in_area: Global___Area | None = ...,
        search_in_community_id: builtins.int | None = ...,
        search_in_rectangle: Global___RectArea | None = ...,
        hosting_status_filter: collections.abc.Iterable[api_pb2.HostingStatus.ValueType] | None = ...,
        smoking_location_filter: collections.abc.Iterable[api_pb2.SmokingLocation.ValueType] | None = ...,
        sleeping_arrangement_filter: collections.abc.Iterable[api_pb2.SleepingArrangement.ValueType] | None = ...,
        parking_details_filter: collections.abc.Iterable[api_pb2.ParkingDetails.ValueType] | None = ...,
        meetup_status_filter: collections.abc.Iterable[api_pb2.MeetupStatus.ValueType] | None = ...,
        language_ability_filter: collections.abc.Iterable[api_pb2.LanguageAbility] | None = ...,
        guests: google.protobuf.wrappers_pb2.UInt32Value | None = ...,
        only_with_references: builtins.bool | None = ...,
        only_with_strong_verification: builtins.bool | None = ...,
        age_min: google.protobuf.wrappers_pb2.UInt32Value | None = ...,
        age_max: google.protobuf.wrappers_pb2.UInt32Value | None = ...,
        last_minute: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        has_pets: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        accepts_pets: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        has_kids: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        accepts_kids: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        has_housemates: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        wheelchair_accessible: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        smokes_at_home: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        drinking_allowed: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        drinks_at_home: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        parking: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        camping_ok: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        profile_completed: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        same_gender_only: builtins.bool | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["accepts_kids", b"accepts_kids", "accepts_pets", b"accepts_pets", "age_max", b"age_max", "age_min", b"age_min", "camping_ok", b"camping_ok", "drinking_allowed", b"drinking_allowed", "drinks_at_home", b"drinks_at_home", "guests", b"guests", "has_housemates", b"has_housemates", "has_kids", b"has_kids", "has_pets", b"has_pets", "last_active", b"last_active", "last_minute", b"last_minute", "parking", b"parking", "profile_completed", b"profile_completed", "query", b"query", "search_in", b"search_in", "search_in_area", b"search_in_area", "search_in_community_id", b"search_in_community_id", "search_in_rectangle", b"search_in_rectangle", "smokes_at_home", b"smokes_at_home", "wheelchair_accessible", b"wheelchair_accessible"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["accepts_kids", b"accepts_kids", "accepts_pets", b"accepts_pets", "age_max", b"age_max", "age_min", b"age_min", "camping_ok", b"camping_ok", "drinking_allowed", b"drinking_allowed", "drinks_at_home", b"drinks_at_home", "exactly_user_ids", b"exactly_user_ids", "guests", b"guests", "has_housemates", b"has_housemates", "has_kids", b"has_kids", "has_pets", b"has_pets", "hosting_status_filter", b"hosting_status_filter", "language_ability_filter", b"language_ability_filter", "last_active", b"last_active", "last_minute", b"last_minute", "meetup_status_filter", b"meetup_status_filter", "only_with_references", b"only_with_references", "only_with_strong_verification", b"only_with_strong_verification", "page_size", b"page_size", "page_token", b"page_token", "parking", b"parking", "parking_details_filter", b"parking_details_filter", "profile_completed", b"profile_completed", "query", b"query", "query_name_only", b"query_name_only", "same_gender_only", b"same_gender_only", "search_in", b"search_in", "search_in_area", b"search_in_area", "search_in_community_id", b"search_in_community_id", "search_in_rectangle", b"search_in_rectangle", "sleeping_arrangement_filter", b"sleeping_arrangement_filter", "smokes_at_home", b"smokes_at_home", "smoking_location_filter", b"smoking_location_filter", "wheelchair_accessible", b"wheelchair_accessible"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_search_in: typing_extensions.TypeAlias = typing.Literal["search_in_area", "search_in_community_id", "search_in_rectangle"]
    _WhichOneofArgType_search_in: typing_extensions.TypeAlias = typing.Literal["search_in", b"search_in"]
    def WhichOneof(self, oneof_group: _WhichOneofArgType_search_in) -> _WhichOneofReturnType_search_in | None: ...

Global___UserSearchReq: typing_extensions.TypeAlias = UserSearchReq

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

    RESULTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    TOTAL_ITEMS_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    total_items: builtins.int
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Result]:
        """sorted with highest rank first
        this will only contain users
        """

    def __init__(
        self,
        *,
        results: collections.abc.Iterable[Global___Result] | None = ...,
        next_page_token: builtins.str | None = ...,
        total_items: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["next_page_token", b"next_page_token", "results", b"results", "total_items", b"total_items"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UserSearchRes: typing_extensions.TypeAlias = UserSearchRes

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

    USER_ID_FIELD_NUMBER: builtins.int
    USERNAME_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    CITY_FIELD_NUMBER: builtins.int
    JOINED_FIELD_NUMBER: builtins.int
    HAS_COMPLETED_PROFILE_FIELD_NUMBER: builtins.int
    HAS_COMPLETED_MY_HOME_FIELD_NUMBER: builtins.int
    LAT_FIELD_NUMBER: builtins.int
    LNG_FIELD_NUMBER: builtins.int
    PROFILE_SNIPPET_FIELD_NUMBER: builtins.int
    NUM_REFERENCES_FIELD_NUMBER: builtins.int
    GENDER_FIELD_NUMBER: builtins.int
    AGE_FIELD_NUMBER: builtins.int
    LAST_ACTIVE_FIELD_NUMBER: builtins.int
    HOSTING_STATUS_FIELD_NUMBER: builtins.int
    MEETUP_STATUS_FIELD_NUMBER: builtins.int
    AVATAR_URL_FIELD_NUMBER: builtins.int
    AVATAR_THUMBNAIL_URL_FIELD_NUMBER: builtins.int
    HAS_STRONG_VERIFICATION_FIELD_NUMBER: builtins.int
    INSUFFICIENT_DATA_FIELD_NUMBER: builtins.int
    LOW_FIELD_NUMBER: builtins.int
    SOME_FIELD_NUMBER: builtins.int
    MOST_FIELD_NUMBER: builtins.int
    ALMOST_ALL_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    username: builtins.str
    name: builtins.str
    city: builtins.str
    has_completed_profile: builtins.bool
    has_completed_my_home: builtins.bool
    lat: builtins.float
    lng: builtins.float
    profile_snippet: builtins.str
    """plain text"""
    num_references: builtins.int
    gender: builtins.str
    age: builtins.int
    hosting_status: api_pb2.HostingStatus.ValueType
    meetup_status: api_pb2.MeetupStatus.ValueType
    avatar_url: builtins.str
    avatar_thumbnail_url: builtins.str
    has_strong_verification: builtins.bool
    @property
    def joined(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """not exact"""

    @property
    def last_active(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """not exact"""

    @property
    def insufficient_data(self) -> requests_pb2.ResponseRateInsufficientData:
        """received <3 requests"""

    @property
    def low(self) -> requests_pb2.ResponseRateLow:
        """response rate <= 33%"""

    @property
    def some(self) -> requests_pb2.ResponseRateSome:
        """response rate > 33%, but <= 66%"""

    @property
    def most(self) -> requests_pb2.ResponseRateMost:
        """response rate > 66%, but <= 90%"""

    @property
    def almost_all(self) -> requests_pb2.ResponseRateAlmostAll:
        """response rate > 90%"""

    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
        username: builtins.str | None = ...,
        name: builtins.str | None = ...,
        city: builtins.str | None = ...,
        joined: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        has_completed_profile: builtins.bool | None = ...,
        has_completed_my_home: builtins.bool | None = ...,
        lat: builtins.float | None = ...,
        lng: builtins.float | None = ...,
        profile_snippet: builtins.str | None = ...,
        num_references: builtins.int | None = ...,
        gender: builtins.str | None = ...,
        age: builtins.int | None = ...,
        last_active: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        hosting_status: api_pb2.HostingStatus.ValueType | None = ...,
        meetup_status: api_pb2.MeetupStatus.ValueType | None = ...,
        avatar_url: builtins.str | None = ...,
        avatar_thumbnail_url: builtins.str | None = ...,
        has_strong_verification: builtins.bool | None = ...,
        insufficient_data: requests_pb2.ResponseRateInsufficientData | None = ...,
        low: requests_pb2.ResponseRateLow | None = ...,
        some: requests_pb2.ResponseRateSome | None = ...,
        most: requests_pb2.ResponseRateMost | None = ...,
        almost_all: requests_pb2.ResponseRateAlmostAll | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["almost_all", b"almost_all", "insufficient_data", b"insufficient_data", "joined", b"joined", "last_active", b"last_active", "low", b"low", "most", b"most", "response_rate", b"response_rate", "some", b"some"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["age", b"age", "almost_all", b"almost_all", "avatar_thumbnail_url", b"avatar_thumbnail_url", "avatar_url", b"avatar_url", "city", b"city", "gender", b"gender", "has_completed_my_home", b"has_completed_my_home", "has_completed_profile", b"has_completed_profile", "has_strong_verification", b"has_strong_verification", "hosting_status", b"hosting_status", "insufficient_data", b"insufficient_data", "joined", b"joined", "last_active", b"last_active", "lat", b"lat", "lng", b"lng", "low", b"low", "meetup_status", b"meetup_status", "most", b"most", "name", b"name", "num_references", b"num_references", "profile_snippet", b"profile_snippet", "response_rate", b"response_rate", "some", b"some", "user_id", b"user_id", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_response_rate: typing_extensions.TypeAlias = typing.Literal["insufficient_data", "low", "some", "most", "almost_all"]
    _WhichOneofArgType_response_rate: typing_extensions.TypeAlias = typing.Literal["response_rate", b"response_rate"]
    def WhichOneof(self, oneof_group: _WhichOneofArgType_response_rate) -> _WhichOneofReturnType_response_rate | None: ...

Global___SearchUser: typing_extensions.TypeAlias = SearchUser

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

    RESULTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    TOTAL_ITEMS_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    total_items: builtins.int
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___SearchUser]: ...
    def __init__(
        self,
        *,
        results: collections.abc.Iterable[Global___SearchUser] | None = ...,
        next_page_token: builtins.str | None = ...,
        total_items: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["next_page_token", b"next_page_token", "results", b"results", "total_items", b"total_items"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UserSearchV2Res: typing_extensions.TypeAlias = UserSearchV2Res

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

    PAST_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    QUERY_TITLE_ONLY_FIELD_NUMBER: builtins.int
    SUBSCRIBED_FIELD_NUMBER: builtins.int
    ATTENDING_FIELD_NUMBER: builtins.int
    ORGANIZING_FIELD_NUMBER: builtins.int
    MY_COMMUNITIES_FIELD_NUMBER: builtins.int
    INCLUDE_CANCELLED_FIELD_NUMBER: builtins.int
    SEARCH_IN_AREA_FIELD_NUMBER: builtins.int
    SEARCH_IN_COMMUNITY_ID_FIELD_NUMBER: builtins.int
    SEARCH_IN_RECTANGLE_FIELD_NUMBER: builtins.int
    AFTER_FIELD_NUMBER: builtins.int
    BEFORE_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    PAGE_NUMBER_FIELD_NUMBER: builtins.int
    EXCLUDE_ATTENDING_FIELD_NUMBER: builtins.int
    past: builtins.bool
    """whether to paginate backwards"""
    query_title_only: builtins.bool
    """whether the query (if any) should only search through event title and not event description"""
    subscribed: builtins.bool
    """all false => everything"""
    attending: builtins.bool
    organizing: builtins.bool
    my_communities: builtins.bool
    """include events in the user's communities"""
    include_cancelled: builtins.bool
    search_in_community_id: builtins.int
    """search inside the area defined by the community"""
    page_size: builtins.int
    page_token: builtins.str
    page_number: builtins.int
    exclude_attending: builtins.bool
    """exclude events the user is already attending or organizing (useful with my_communities)"""
    @property
    def query(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def search_in_area(self) -> Global___Area:
        """search in given area"""

    @property
    def search_in_rectangle(self) -> Global___RectArea: ...
    @property
    def after(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """restrictions in time"""

    @property
    def before(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        past: builtins.bool | None = ...,
        query: google.protobuf.wrappers_pb2.StringValue | None = ...,
        query_title_only: builtins.bool | None = ...,
        subscribed: builtins.bool | None = ...,
        attending: builtins.bool | None = ...,
        organizing: builtins.bool | None = ...,
        my_communities: builtins.bool | None = ...,
        include_cancelled: builtins.bool | None = ...,
        search_in_area: Global___Area | None = ...,
        search_in_community_id: builtins.int | None = ...,
        search_in_rectangle: Global___RectArea | None = ...,
        after: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        before: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
        page_number: builtins.int | None = ...,
        exclude_attending: builtins.bool | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["after", b"after", "before", b"before", "page_number", b"page_number", "page_token", b"page_token", "pagination", b"pagination", "query", b"query", "search_in", b"search_in", "search_in_area", b"search_in_area", "search_in_community_id", b"search_in_community_id", "search_in_rectangle", b"search_in_rectangle"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["after", b"after", "attending", b"attending", "before", b"before", "exclude_attending", b"exclude_attending", "include_cancelled", b"include_cancelled", "my_communities", b"my_communities", "organizing", b"organizing", "page_number", b"page_number", "page_size", b"page_size", "page_token", b"page_token", "pagination", b"pagination", "past", b"past", "query", b"query", "query_title_only", b"query_title_only", "search_in", b"search_in", "search_in_area", b"search_in_area", "search_in_community_id", b"search_in_community_id", "search_in_rectangle", b"search_in_rectangle", "subscribed", b"subscribed"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_pagination: typing_extensions.TypeAlias = typing.Literal["page_token", "page_number"]
    _WhichOneofArgType_pagination: typing_extensions.TypeAlias = typing.Literal["pagination", b"pagination"]
    _WhichOneofReturnType_search_in: typing_extensions.TypeAlias = typing.Literal["search_in_area", "search_in_community_id", "search_in_rectangle"]
    _WhichOneofArgType_search_in: typing_extensions.TypeAlias = typing.Literal["search_in", b"search_in"]
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType_pagination) -> _WhichOneofReturnType_pagination | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType_search_in) -> _WhichOneofReturnType_search_in | None: ...

Global___EventSearchReq: typing_extensions.TypeAlias = EventSearchReq

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

    EVENTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    TOTAL_ITEMS_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    total_items: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[events_pb2.Event]: ...
    def __init__(
        self,
        *,
        events: collections.abc.Iterable[events_pb2.Event] | None = ...,
        next_page_token: builtins.str | None = ...,
        total_items: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["events", b"events", "next_page_token", b"next_page_token", "total_items", b"total_items"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___EventSearchRes: typing_extensions.TypeAlias = EventSearchRes
