a
    y{Jhr                     @  s   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ erXddlmZ G dd	 d	ee ZG d
d deZG dd deZdS )    )annotations)ABCabstractmethod)TYPE_CHECKINGProtocol)ResponseTelegramMethod)TelegramType   )Botc                   @  s   e Zd ZddddddZdS )NextRequestMiddlewareType'Bot'TelegramMethod[TelegramType]Response[TelegramType])botmethodreturnc                   s   d S N )selfr   r   r   r   Y/var/www/shaz/venv/lib/python3.9/site-packages/aiogram/client/session/middlewares/base.py__call__   s    z"NextRequestMiddlewareType.__call__N__name__
__module____qualname__r   r   r   r   r   r      s   r   c                   @  s    e Zd ZdddddddZdS )	RequestMiddlewareType'NextRequestMiddlewareType[TelegramType]r   r   r   make_requestr   r   r   c                   s   d S r   r   r   r   r   r   r   r   r   r      s    zRequestMiddlewareType.__call__Nr   r   r   r   r   r      s   r   c                   @  s(   e Zd ZdZedddddddZd	S )
BaseRequestMiddlewarez"
    Generic middleware class
    r   r   r   r   r   c                   s   dS )a,  
        Execute middleware

        :param make_request: Wrapped make_request in middlewares chain
        :param bot: bot for request making
        :param method: Request method (Subclass of :class:`aiogram.methods.base.TelegramMethod`)

        :return: :class:`aiogram.methods.Response`
        Nr   r    r   r   r   r   %   s    zBaseRequestMiddleware.__call__N)r   r   r   __doc__r   r   r   r   r   r   r!       s   r!   N)
__future__r   abcr   r   typingr   r   Zaiogram.methodsr   r   Zaiogram.methods.baser	   r   r   r   r   r!   r   r   r   r   <module>   s   	
