o
    LDio                     @  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	 er,d dl
mZ d dlmZ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)TelegramType)Bot)ResponseTelegramMethodc                   @  s   e Zd Zd
ddZd	S )NextRequestMiddlewareTypebotr   methodTelegramMethod[TelegramType]returnResponse[TelegramType]c                      d S N )selfr   r   r   r   s/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiogram/client/session/middlewares/base.py__call__   s   z"NextRequestMiddlewareType.__call__N)r   r   r   r   r   r   __name__
__module____qualname__r   r   r   r   r   r          r   c                   @  s   e Zd Zdd	d
ZdS )RequestMiddlewareTypemake_request'NextRequestMiddlewareType[TelegramType]r   r   r   r   r   r   c                   r   r   r   r   r   r   r   r   r   r   r      s   zRequestMiddlewareType.__call__Nr   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   c                   @  s   e Zd ZdZedd
dZdS )BaseRequestMiddlewarez"
    Generic middleware class
    r   r   r   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__Nr    )r   r   r   __doc__r   r   r   r   r   r   r!       s    r!   N)
__future__r   abcr   r   typingr   r   aiogram.methods.baser   aiogram.client.botr   aiogram.methodsr	   r
   r   r   r!   r   r   r   r   <module>   s    	
