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

from abc import (
    ABCMeta,
    abstractmethod,
)
from chalk._gen.chalk.aggregate.v1.service_pb2 import (
    GetActiveCronAggregateBackfillsRequest,
    GetActiveCronAggregateBackfillsResponse,
    GetAggregateBackfillJobRequest,
    GetAggregateBackfillJobResponse,
    GetAggregateBackfillJobsRequest,
    GetAggregateBackfillJobsResponse,
    GetAggregatesRequest,
    GetAggregatesResponse,
    GetCronAggregateBackfillRequest,
    GetCronAggregateBackfillResponse,
    PlanAggregateBackfillRequest,
    PlanAggregateBackfillResponse,
)
from grpc import (
    Channel,
    Server,
    ServicerContext,
    UnaryUnaryMultiCallable,
)

class AggregateServiceStub:
    def __init__(self, channel: Channel) -> None: ...
    PlanAggregateBackfill: UnaryUnaryMultiCallable[
        PlanAggregateBackfillRequest,
        PlanAggregateBackfillResponse,
    ]
    """PlanAggregateBackfill determines the estimated resources needed to backfill
    an aggregate.

    This method is a duplicate of the PlanAggregateBackfill method
    in the query_server.proto file. We should remove the query_server.proto method
    and move that request to this service instead.
    buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
    """
    GetAggregates: UnaryUnaryMultiCallable[
        GetAggregatesRequest,
        GetAggregatesResponse,
    ]
    """This method is a duplicate of the PlanAggregateBackfill method
    in the query_server.proto file. We should remove the query_server.proto method
    and move that request to this service instead.
    buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
    """
    GetAggregateBackfillJobs: UnaryUnaryMultiCallable[
        GetAggregateBackfillJobsRequest,
        GetAggregateBackfillJobsResponse,
    ]
    GetAggregateBackfillJob: UnaryUnaryMultiCallable[
        GetAggregateBackfillJobRequest,
        GetAggregateBackfillJobResponse,
    ]
    GetCronAggregateBackfill: UnaryUnaryMultiCallable[
        GetCronAggregateBackfillRequest,
        GetCronAggregateBackfillResponse,
    ]
    GetActiveCronAggregateBackfills: UnaryUnaryMultiCallable[
        GetActiveCronAggregateBackfillsRequest,
        GetActiveCronAggregateBackfillsResponse,
    ]

class AggregateServiceServicer(metaclass=ABCMeta):
    @abstractmethod
    def PlanAggregateBackfill(
        self,
        request: PlanAggregateBackfillRequest,
        context: ServicerContext,
    ) -> PlanAggregateBackfillResponse:
        """PlanAggregateBackfill determines the estimated resources needed to backfill
        an aggregate.

        This method is a duplicate of the PlanAggregateBackfill method
        in the query_server.proto file. We should remove the query_server.proto method
        and move that request to this service instead.
        buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
        """
    @abstractmethod
    def GetAggregates(
        self,
        request: GetAggregatesRequest,
        context: ServicerContext,
    ) -> GetAggregatesResponse:
        """This method is a duplicate of the PlanAggregateBackfill method
        in the query_server.proto file. We should remove the query_server.proto method
        and move that request to this service instead.
        buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
        """
    @abstractmethod
    def GetAggregateBackfillJobs(
        self,
        request: GetAggregateBackfillJobsRequest,
        context: ServicerContext,
    ) -> GetAggregateBackfillJobsResponse: ...
    @abstractmethod
    def GetAggregateBackfillJob(
        self,
        request: GetAggregateBackfillJobRequest,
        context: ServicerContext,
    ) -> GetAggregateBackfillJobResponse: ...
    @abstractmethod
    def GetCronAggregateBackfill(
        self,
        request: GetCronAggregateBackfillRequest,
        context: ServicerContext,
    ) -> GetCronAggregateBackfillResponse: ...
    @abstractmethod
    def GetActiveCronAggregateBackfills(
        self,
        request: GetActiveCronAggregateBackfillsRequest,
        context: ServicerContext,
    ) -> GetActiveCronAggregateBackfillsResponse: ...

def add_AggregateServiceServicer_to_server(servicer: AggregateServiceServicer, server: Server) -> None: ...
