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

import abc
import collections.abc
import google.api.httpbody_pb2
import google.protobuf.empty_pb2
import grpc
import grpc.aio
import public_pb2
import typing


GRPC_GENERATED_VERSION: str
GRPC_VERSION: str

class PublicStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    GetPublicUsers: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, google.api.httpbody_pb2.HttpBody]
    GetPublicUser: grpc.UnaryUnaryMultiCallable[public_pb2.GetPublicUserReq, public_pb2.GetPublicUserRes]
    GetSignupPageInfo: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, public_pb2.GetSignupPageInfoRes]
    GetVolunteers: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, public_pb2.GetVolunteersRes]
    GetDonationStats: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, public_pb2.GetDonationStatsRes]

class PublicServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def GetPublicUsers(
        self,
        request: google.protobuf.empty_pb2.Empty,
        context: CouchersContext,
        session: orm.Session,
    ) -> google.api.httpbody_pb2.HttpBody: ...

    @abc.abstractmethod
    def GetPublicUser(
        self,
        request: public_pb2.GetPublicUserReq,
        context: CouchersContext,
        session: orm.Session,
    ) -> public_pb2.GetPublicUserRes: ...

    @abc.abstractmethod
    def GetSignupPageInfo(
        self,
        request: google.protobuf.empty_pb2.Empty,
        context: CouchersContext,
        session: orm.Session,
    ) -> public_pb2.GetSignupPageInfoRes: ...

    @abc.abstractmethod
    def GetVolunteers(
        self,
        request: google.protobuf.empty_pb2.Empty,
        context: CouchersContext,
        session: orm.Session,
    ) -> public_pb2.GetVolunteersRes: ...

    @abc.abstractmethod
    def GetDonationStats(
        self,
        request: google.protobuf.empty_pb2.Empty,
        context: CouchersContext,
        session: orm.Session,
    ) -> public_pb2.GetDonationStatsRes: ...

def add_PublicServicer_to_server(servicer: PublicServicer, server: grpc.Server) -> None: ...
