o
    Fhr                     @  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r,d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Zd	S )NextRequestMiddlewareTypebot'Bot'methodTelegramMethod[TelegramType]returnResponse[TelegramType]c                      d S N )selfr   r   r   r   Z/var/www/html/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.methodsr   r   aiogram.methods.baser	   r   r   r   r   r#   r   r   r   r   <module>   s    	
