#
# Autogenerated by Thrift for thrift/compiler/test/fixtures/basic/src/module.thrift
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#  @generated
#

import folly.iobuf as _fbthrift_iobuf
import typing as _typing
from thrift.py3.server import RequestContext, ServiceInterface
from abc import abstractmethod, ABCMeta

import test.fixtures.basic.module.types as _test_fixtures_basic_module_types

_FooServiceInterfaceT = _typing.TypeVar('_FooServiceInterfaceT', bound='FooServiceInterface')


class FooServiceInterface(
    ServiceInterface,
    metaclass=ABCMeta,
):


    @abstractmethod
    async def simple_rpc(
        self
    ) -> None: ...
    pass


_FB303ServiceInterfaceT = _typing.TypeVar('_FB303ServiceInterfaceT', bound='FB303ServiceInterface')


class FB303ServiceInterface(
    ServiceInterface,
    metaclass=ABCMeta,
):


    @abstractmethod
    async def simple_rpc(
        self,
        int_parameter: int
    ) -> _test_fixtures_basic_module_types.ReservedKeyword: ...
    pass


_MyServiceInterfaceT = _typing.TypeVar('_MyServiceInterfaceT', bound='MyServiceInterface')


class MyServiceInterface(
    ServiceInterface,
    metaclass=ABCMeta,
):


    @abstractmethod
    async def ping(
        self
    ) -> None: ...


    @abstractmethod
    async def getRandomData(
        self
    ) -> str: ...


    @abstractmethod
    async def sink(
        self,
        sink: int
    ) -> None: ...


    @abstractmethod
    async def putDataById(
        self,
        id: int,
        data: str
    ) -> None: ...


    @abstractmethod
    async def hasDataById(
        self,
        id: int
    ) -> bool: ...


    @abstractmethod
    async def getDataById(
        self,
        id: int
    ) -> str: ...


    @abstractmethod
    async def deleteDataById(
        self,
        id: int
    ) -> None: ...


    @abstractmethod
    async def lobDataById(
        self,
        id: int,
        data: str
    ) -> None: ...


    @abstractmethod
    async def invalid_return_for_hack(
        self
    ) -> _typing.AbstractSet[float]: ...


    @abstractmethod
    async def rpc_skipped_codegen(
        self
    ) -> None: ...
    pass


_DbMixedStackArgumentsInterfaceT = _typing.TypeVar('_DbMixedStackArgumentsInterfaceT', bound='DbMixedStackArgumentsInterface')


class DbMixedStackArgumentsInterface(
    ServiceInterface,
    metaclass=ABCMeta,
):


    @abstractmethod
    async def getDataByKey0(
        self,
        key: str
    ) -> bytes: ...


    @abstractmethod
    async def getDataByKey1(
        self,
        key: str
    ) -> bytes: ...
    pass


