"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import collections.abc
import ft_capability_pb2
import ft_streams_pb2
import ft_types_pb2
import grpc

class streamsStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    CreateStreamThread: grpc.UnaryUnaryMultiCallable[
        ft_streams_pb2.stream_thread_request,
        ft_streams_pb2.stream_thread_response,
    ]
    ListStreamThread: grpc.UnaryUnaryMultiCallable[
        ft_types_pb2.empty,
        ft_streams_pb2.streamthreadlist,
    ]
    DestroyStreamThread: grpc.UnaryUnaryMultiCallable[
        ft_streams_pb2.stream_thread_request,
        ft_streams_pb2.stream_thread_response,
    ]
    CreateStream: grpc.UnaryUnaryMultiCallable[
        ft_streams_pb2.stream_registration_request,
        ft_streams_pb2.stream_registration_response,
    ]
    ListStreams: grpc.UnaryUnaryMultiCallable[
        ft_types_pb2.empty,
        ft_streams_pb2.streamlist,
    ]
    ReceiveStream: grpc.StreamStreamMultiCallable[
        ft_streams_pb2.stream_control,
        ft_capability_pb2.capability_response,
    ]
    DestroyStream: grpc.UnaryUnaryMultiCallable[
        ft_streams_pb2.stream_registration_request,
        ft_streams_pb2.stream_registration_response,
    ]
    StreamFlagUpdates: grpc.StreamStreamMultiCallable[
        ft_streams_pb2.stream_control,
        ft_streams_pb2.serverflagupdate,
    ]

class streamsServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def CreateStreamThread(
        self,
        request: ft_streams_pb2.stream_thread_request,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.stream_thread_response: ...
    @abc.abstractmethod
    def ListStreamThread(
        self,
        request: ft_types_pb2.empty,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.streamthreadlist: ...
    @abc.abstractmethod
    def DestroyStreamThread(
        self,
        request: ft_streams_pb2.stream_thread_request,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.stream_thread_response: ...
    @abc.abstractmethod
    def CreateStream(
        self,
        request: ft_streams_pb2.stream_registration_request,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.stream_registration_response: ...
    @abc.abstractmethod
    def ListStreams(
        self,
        request: ft_types_pb2.empty,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.streamlist: ...
    @abc.abstractmethod
    def ReceiveStream(
        self,
        request_iterator: collections.abc.Iterator[ft_streams_pb2.stream_control],
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[ft_capability_pb2.capability_response]: ...
    @abc.abstractmethod
    def DestroyStream(
        self,
        request: ft_streams_pb2.stream_registration_request,
        context: grpc.ServicerContext,
    ) -> ft_streams_pb2.stream_registration_response: ...
    @abc.abstractmethod
    def StreamFlagUpdates(
        self,
        request_iterator: collections.abc.Iterator[ft_streams_pb2.stream_control],
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[ft_streams_pb2.serverflagupdate]: ...

def add_streamsServicer_to_server(servicer: streamsServicer, server: grpc.Server) -> None: ...
