"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import artifact.artifact.v1alpha.artifact_pb2
import artifact.artifact.v1alpha.chunk_pb2
import collections.abc
import grpc
import grpc.aio
import typing

_T = typing.TypeVar('_T')

class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta):
    ...

class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext):  # type: ignore
    ...

class ArtifactPublicServiceStub:
    """ArtifactPublicService exposes the public endpoints that allow clients to
    manage artifacts.
    """

    def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
    Liveness: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.LivenessRequest,
        artifact.artifact.v1alpha.artifact_pb2.LivenessResponse,
    ]
    """Check if the artifact server is alive

    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
    """
    Readiness: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ReadinessRequest,
        artifact.artifact.v1alpha.artifact_pb2.ReadinessResponse,
    ]
    """Check if the artifact server is ready

    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    CreateKnowledgeBase: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseResponse,
    ]
    """Create a knowledge base"""
    ListKnowledgeBases: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesResponse,
    ]
    """Get all knowledge bases info"""
    UpdateKnowledgeBase: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseResponse,
    ]
    """Update a knowledge base info"""
    DeleteKnowledgeBase: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseResponse,
    ]
    """Delete a knowledge base"""
    UploadKnowledgeBaseFile: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileRequest,
        artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileResponse,
    ]
    """Create a file"""
    DeleteKnowledgeBaseFile: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileRequest,
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileResponse,
    ]
    """Delete a file"""
    ProcessKnowledgeBaseFiles: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesResponse,
    ]
    """process file"""
    ListKnowledgeBaseFiles: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesResponse,
    ]
    """list files"""
    ListChunks: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.ListChunksRequest,
        artifact.artifact.v1alpha.chunk_pb2.ListChunksResponse,
    ]
    """List chunks"""
    GetSourceFile: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.GetSourceFileRequest,
        artifact.artifact.v1alpha.chunk_pb2.GetSourceFileResponse,
    ]
    """Get source file"""
    UpdateChunk: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.UpdateChunkRequest,
        artifact.artifact.v1alpha.chunk_pb2.UpdateChunkResponse,
    ]
    """Update chunk"""
    SimilarityChunksSearch: grpc.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchRequest,
        artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchResponse,
    ]
    """Similarity chunks search"""

class ArtifactPublicServiceAsyncStub:
    """ArtifactPublicService exposes the public endpoints that allow clients to
    manage artifacts.
    """

    Liveness: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.LivenessRequest,
        artifact.artifact.v1alpha.artifact_pb2.LivenessResponse,
    ]
    """Check if the artifact server is alive

    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
    """
    Readiness: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ReadinessRequest,
        artifact.artifact.v1alpha.artifact_pb2.ReadinessResponse,
    ]
    """Check if the artifact server is ready

    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    CreateKnowledgeBase: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseResponse,
    ]
    """Create a knowledge base"""
    ListKnowledgeBases: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesResponse,
    ]
    """Get all knowledge bases info"""
    UpdateKnowledgeBase: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseResponse,
    ]
    """Update a knowledge base info"""
    DeleteKnowledgeBase: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseRequest,
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseResponse,
    ]
    """Delete a knowledge base"""
    UploadKnowledgeBaseFile: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileRequest,
        artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileResponse,
    ]
    """Create a file"""
    DeleteKnowledgeBaseFile: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileRequest,
        artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileResponse,
    ]
    """Delete a file"""
    ProcessKnowledgeBaseFiles: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesResponse,
    ]
    """process file"""
    ListKnowledgeBaseFiles: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesRequest,
        artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesResponse,
    ]
    """list files"""
    ListChunks: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.ListChunksRequest,
        artifact.artifact.v1alpha.chunk_pb2.ListChunksResponse,
    ]
    """List chunks"""
    GetSourceFile: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.GetSourceFileRequest,
        artifact.artifact.v1alpha.chunk_pb2.GetSourceFileResponse,
    ]
    """Get source file"""
    UpdateChunk: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.UpdateChunkRequest,
        artifact.artifact.v1alpha.chunk_pb2.UpdateChunkResponse,
    ]
    """Update chunk"""
    SimilarityChunksSearch: grpc.aio.UnaryUnaryMultiCallable[
        artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchRequest,
        artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchResponse,
    ]
    """Similarity chunks search"""

class ArtifactPublicServiceServicer(metaclass=abc.ABCMeta):
    """ArtifactPublicService exposes the public endpoints that allow clients to
    manage artifacts.
    """

    @abc.abstractmethod
    def Liveness(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.LivenessRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.LivenessResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.LivenessResponse]]:
        """Check if the artifact server is alive

        See https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
        """
    @abc.abstractmethod
    def Readiness(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.ReadinessRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.ReadinessResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.ReadinessResponse]]:
        """Check if the artifact server is ready

        See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
        """
    @abc.abstractmethod
    def CreateKnowledgeBase(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.CreateKnowledgeBaseResponse]]:
        """Create a knowledge base"""
    @abc.abstractmethod
    def ListKnowledgeBases(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBasesResponse]]:
        """Get all knowledge bases info"""
    @abc.abstractmethod
    def UpdateKnowledgeBase(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.UpdateKnowledgeBaseResponse]]:
        """Update a knowledge base info"""
    @abc.abstractmethod
    def DeleteKnowledgeBase(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseResponse]]:
        """Delete a knowledge base"""
    @abc.abstractmethod
    def UploadKnowledgeBaseFile(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.UploadKnowledgeBaseFileResponse]]:
        """Create a file"""
    @abc.abstractmethod
    def DeleteKnowledgeBaseFile(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.DeleteKnowledgeBaseFileResponse]]:
        """Delete a file"""
    @abc.abstractmethod
    def ProcessKnowledgeBaseFiles(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.ProcessKnowledgeBaseFilesResponse]]:
        """process file"""
    @abc.abstractmethod
    def ListKnowledgeBaseFiles(
        self,
        request: artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.artifact_pb2.ListKnowledgeBaseFilesResponse]]:
        """list files"""
    @abc.abstractmethod
    def ListChunks(
        self,
        request: artifact.artifact.v1alpha.chunk_pb2.ListChunksRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.chunk_pb2.ListChunksResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.chunk_pb2.ListChunksResponse]]:
        """List chunks"""
    @abc.abstractmethod
    def GetSourceFile(
        self,
        request: artifact.artifact.v1alpha.chunk_pb2.GetSourceFileRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.chunk_pb2.GetSourceFileResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.chunk_pb2.GetSourceFileResponse]]:
        """Get source file"""
    @abc.abstractmethod
    def UpdateChunk(
        self,
        request: artifact.artifact.v1alpha.chunk_pb2.UpdateChunkRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.chunk_pb2.UpdateChunkResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.chunk_pb2.UpdateChunkResponse]]:
        """Update chunk"""
    @abc.abstractmethod
    def SimilarityChunksSearch(
        self,
        request: artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchRequest,
        context: _ServicerContext,
    ) -> typing.Union[artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchResponse, collections.abc.Awaitable[artifact.artifact.v1alpha.chunk_pb2.SimilarityChunksSearchResponse]]:
        """Similarity chunks search"""

def add_ArtifactPublicServiceServicer_to_server(servicer: ArtifactPublicServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
