
# EXPERIMENTAL - DO NOT USE !!!
# See `experimental_unify_thrift_python_type_hints` documentation in thrift compiler

#
# Autogenerated by Thrift
#
# DO NOT EDIT
#  @generated
#

from __future__ import annotations

import abc as _abc
import typing as _typing

import folly.iobuf as _fbthrift_iobuf


class FooStreamEx(_abc.ABC):
    pass
    @_abc.abstractmethod
    def __iter__(self) -> _typing.Iterator[_typing.Tuple[str, _typing.Union[None]]]: ...
    @_abc.abstractmethod
    def _to_mutable_python(self) -> "module.thrift_mutable_types.FooStreamEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_python(self) -> "module.thrift_types.FooStreamEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py3(self) -> "module.types.FooStreamEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py_deprecated(self) -> "module.ttypes.FooStreamEx": ...  # type: ignore

class FooEx(_abc.ABC):
    pass
    @_abc.abstractmethod
    def __iter__(self) -> _typing.Iterator[_typing.Tuple[str, _typing.Union[None]]]: ...
    @_abc.abstractmethod
    def _to_mutable_python(self) -> "module.thrift_mutable_types.FooEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_python(self) -> "module.thrift_types.FooEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py3(self) -> "module.types.FooEx": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py_deprecated(self) -> "module.ttypes.FooEx": ...  # type: ignore

class FooEx2(_abc.ABC):
    pass
    @_abc.abstractmethod
    def __iter__(self) -> _typing.Iterator[_typing.Tuple[str, _typing.Union[None]]]: ...
    @_abc.abstractmethod
    def _to_mutable_python(self) -> "module.thrift_mutable_types.FooEx2": ...  # type: ignore
    @_abc.abstractmethod
    def _to_python(self) -> "module.thrift_types.FooEx2": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py3(self) -> "module.types.FooEx2": ...  # type: ignore
    @_abc.abstractmethod
    def _to_py_deprecated(self) -> "module.ttypes.FooEx2": ...  # type: ignore
