async def send_request_async(self, endpoint: str, data: Dict[str, Any], files: Dict[str, Any] = None, method: str = "POST", return_raw: bool = False) -> Any:
        """
        Asynchronous version of send_request.
        General method to send an API request asynchronously.

        Args:
            endpoint: The API endpoint to send the request to.
            data: The data to send in the request.
            files: Optional files to upload.
            method: HTTP method to use (GET or POST)
            return_raw: Whether to return the raw response content instead of JSON

        Returns:
            The response from the API, either as JSON or raw content.
        """
        async with httpx.AsyncClient() as client:
            if method.upper() == "GET":
                response = await client.get(self.url + endpoint, params=data, timeout=600.0)
            else:
                if files:
                    response = await client.post(self.url + endpoint, data=data, files=files, timeout=600.0)
                else:
                    response = await client.post(self.url + endpoint, json=data, timeout=600.0)
                
            if response.status_code == 408:
                raise TimeoutException("Request timed out")
            response.raise_for_status()
            
            return response.content if return_raw else response.json()

        Asynchronous version of send_request.
        General method to send an API request asynchronously.

        Args:
            endpoint: The API endpoint to send the request to.
            data: The data to send in the request.
            files: Optional files to upload.
            method: HTTP method to use (GET or POST)
            return_raw: Whether to return the raw response content instead of JSON

        Returns:
            The response from the API, either as JSON or raw content.
        
src/upsonic/client/base.py