from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import (
    ClassVar as _ClassVar,
    Iterable as _Iterable,
    Mapping as _Mapping,
    Optional as _Optional,
    Union as _Union,
)

DESCRIPTOR: _descriptor.FileDescriptor

class CreateUserRequest(_message.Message):
    __slots__ = ["email", "password"]
    EMAIL_FIELD_NUMBER: _ClassVar[int]
    PASSWORD_FIELD_NUMBER: _ClassVar[int]
    email: str
    password: str
    def __init__(self, email: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ...

class CreateUserResponse(_message.Message):
    __slots__ = ["email", "id"]
    EMAIL_FIELD_NUMBER: _ClassVar[int]
    ID_FIELD_NUMBER: _ClassVar[int]
    email: str
    id: str
    def __init__(self, id: _Optional[str] = ..., email: _Optional[str] = ...) -> None: ...

class GetUserLoginHistoryRequest(_message.Message):
    __slots__ = ["access_token", "limit", "offset"]
    ACCESS_TOKEN_FIELD_NUMBER: _ClassVar[int]
    LIMIT_FIELD_NUMBER: _ClassVar[int]
    OFFSET_FIELD_NUMBER: _ClassVar[int]
    access_token: str
    limit: int
    offset: int
    def __init__(
        self,
        access_token: _Optional[str] = ...,
        limit: _Optional[int] = ...,
        offset: _Optional[int] = ...,
    ) -> None: ...

class GetUserLoginHistoryResponse(_message.Message):
    __slots__ = ["results"]
    RESULTS_FIELD_NUMBER: _ClassVar[int]
    results: _containers.RepeatedCompositeFieldContainer[UserLoginHistory]
    def __init__(self, results: _Optional[_Iterable[_Union[UserLoginHistory, _Mapping]]] = ...) -> None: ...

class UpdateUserEmailRequest(_message.Message):
    __slots__ = ["access_token", "email"]
    ACCESS_TOKEN_FIELD_NUMBER: _ClassVar[int]
    EMAIL_FIELD_NUMBER: _ClassVar[int]
    access_token: str
    email: str
    def __init__(self, email: _Optional[str] = ..., access_token: _Optional[str] = ...) -> None: ...

class UpdateUserEmailResponse(_message.Message):
    __slots__ = []
    def __init__(self) -> None: ...

class UpdateUserPasswordRequest(_message.Message):
    __slots__ = ["access_token", "password"]
    ACCESS_TOKEN_FIELD_NUMBER: _ClassVar[int]
    PASSWORD_FIELD_NUMBER: _ClassVar[int]
    access_token: str
    password: str
    def __init__(self, password: _Optional[str] = ..., access_token: _Optional[str] = ...) -> None: ...

class UpdateUserPasswordResponse(_message.Message):
    __slots__ = []
    def __init__(self) -> None: ...

class UserLoginHistory(_message.Message):
    __slots__ = ["date", "device", "ip_address", "user_agent"]
    DATE_FIELD_NUMBER: _ClassVar[int]
    DEVICE_FIELD_NUMBER: _ClassVar[int]
    IP_ADDRESS_FIELD_NUMBER: _ClassVar[int]
    USER_AGENT_FIELD_NUMBER: _ClassVar[int]
    date: str
    device: str
    ip_address: str
    user_agent: str
    def __init__(
        self,
        date: _Optional[str] = ...,
        ip_address: _Optional[str] = ...,
        user_agent: _Optional[str] = ...,
        device: _Optional[str] = ...,
    ) -> None: ...
