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

from abc import (
    ABCMeta,
    abstractmethod,
)
from chalk._gen.chalk.server.v1.offline_queries_pb2 import (
    GetOfflineQueryRequest,
    GetOfflineQueryResponse,
    ListOfflineQueriesRequest,
    ListOfflineQueriesResponse,
)
from chalk._gen.chalk.server.v1.performance_summary_pb2 import (
    ListOfflineQueryShardPerformanceSummariesRequest,
    ListOfflineQueryShardPerformanceSummariesResponse,
)
from grpc import (
    Channel,
    Server,
    ServicerContext,
    UnaryUnaryMultiCallable,
)

class OfflineQueryMetadataServiceStub:
    """message GetOfflineQueryShardsRequest {
     string offline_query_id = 1;
    }

    message GetOfflineQueryShardsResponse {
     repeated OfflineQueryShard offline_query_shards = 1;
    }
    """

    def __init__(self, channel: Channel) -> None: ...
    ListOfflineQueries: UnaryUnaryMultiCallable[
        ListOfflineQueriesRequest,
        ListOfflineQueriesResponse,
    ]
    GetOfflineQuery: UnaryUnaryMultiCallable[
        GetOfflineQueryRequest,
        GetOfflineQueryResponse,
    ]
    ListOfflineQueryShardPerformanceSummaries: UnaryUnaryMultiCallable[
        ListOfflineQueryShardPerformanceSummariesRequest,
        ListOfflineQueryShardPerformanceSummariesResponse,
    ]
    """ rpc GetOfflineQueryShards(GetOfflineQueryShardsRequest) returns (GetOfflineQueryShardsResponse) {
       option(chalk.auth.v1.permission) = PERMISSION_DEPLOY_READ;
       option idempotency_level = NO_SIDE_EFFECTS;
     }
    """

class OfflineQueryMetadataServiceServicer(metaclass=ABCMeta):
    """message GetOfflineQueryShardsRequest {
     string offline_query_id = 1;
    }

    message GetOfflineQueryShardsResponse {
     repeated OfflineQueryShard offline_query_shards = 1;
    }
    """

    @abstractmethod
    def ListOfflineQueries(
        self,
        request: ListOfflineQueriesRequest,
        context: ServicerContext,
    ) -> ListOfflineQueriesResponse: ...
    @abstractmethod
    def GetOfflineQuery(
        self,
        request: GetOfflineQueryRequest,
        context: ServicerContext,
    ) -> GetOfflineQueryResponse: ...
    @abstractmethod
    def ListOfflineQueryShardPerformanceSummaries(
        self,
        request: ListOfflineQueryShardPerformanceSummariesRequest,
        context: ServicerContext,
    ) -> ListOfflineQueryShardPerformanceSummariesResponse:
        """rpc GetOfflineQueryShards(GetOfflineQueryShardsRequest) returns (GetOfflineQueryShardsResponse) {
          option(chalk.auth.v1.permission) = PERMISSION_DEPLOY_READ;
          option idempotency_level = NO_SIDE_EFFECTS;
        }
        """

def add_OfflineQueryMetadataServiceServicer_to_server(
    servicer: OfflineQueryMetadataServiceServicer, server: Server
) -> None: ...
