ict, Generic, TypeVar, Union

if TYPE_CHECKING:
    from supertokens_python.ingredients.emaildelivery.services.smtp import Transporter

_T = TypeVar(&#34;_T&#34;)


class EmailDeliveryInterface(ABC, Generic[_T]):
    @abstractmethod
    async def send_email(self, template_vars: _T, user_context: Dict[str, Any]) -&gt; None:
        pass


class EmailDeliveryConfig(ABC, Generic[_T]):
    def __init__(
        self,
        service: Union[EmailDeliveryInterface[_T], None] = None,
        override: Union[
     