async def METHOD_NAME(
    self, bot: Bot, method: TelegramMethod[TelegramType], timeout: Optional[int] = None
) -> TelegramType:
    session = await self.create_session()
    url = self.api.api_url(token=bot.token, method=method.__api_method__)
    form = self.build_form_data(bot=bot, method=method)
    try:
        async with session.post(
            url, data=form, timeout=self.timeout if timeout is None else timeout
        ) as resp:
            raw_result = await resp.text()
    except asyncio.TimeoutError:
        raise TelegramNetworkError(method=method, message="Request timeout error")
    except ClientError as e:
        raise TelegramNetworkError(method=method, message=f"{type(e).__name__}: {e}")
    response = self.check_response(
        bot=bot, method=method, status_code=resp.status, content=raw_result
    )
    return cast(TelegramType, response.result)