from sqlalchemy import orm
from couchers.context import CouchersContext
"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import abc
import blocking_pb2
import collections.abc
import google.protobuf.empty_pb2
import grpc
import grpc.aio
import typing


GRPC_GENERATED_VERSION: str
GRPC_VERSION: str

class BlockingStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    BlockUser: grpc.UnaryUnaryMultiCallable[blocking_pb2.BlockUserReq, google.protobuf.empty_pb2.Empty]
    UnblockUser: grpc.UnaryUnaryMultiCallable[blocking_pb2.UnblockUserReq, google.protobuf.empty_pb2.Empty]
    GetBlockedUsers: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, blocking_pb2.GetBlockedUsersRes]
    """Returns all users blocked by a given account"""

class BlockingServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def BlockUser(
        self,
        request: blocking_pb2.BlockUserReq,
        context: CouchersContext,
        session: orm.Session,
    ) -> google.protobuf.empty_pb2.Empty: ...

    @abc.abstractmethod
    def UnblockUser(
        self,
        request: blocking_pb2.UnblockUserReq,
        context: CouchersContext,
        session: orm.Session,
    ) -> google.protobuf.empty_pb2.Empty: ...

    @abc.abstractmethod
    def GetBlockedUsers(
        self,
        request: google.protobuf.empty_pb2.Empty,
        context: CouchersContext,
        session: orm.Session,
    ) -> blocking_pb2.GetBlockedUsersRes:
        """Returns all users blocked by a given account"""

def add_BlockingServicer_to_server(servicer: BlockingServicer, server: grpc.Server) -> None: ...
