from __future__ import annotations

import urllib.parse
from typing import Any, Dict, Optional

from ..client import Client

class AIResource:
    def __init__(self, client: Client) -> None:
        self._client = client

    def summarize(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/summarize", query=query, body=body)

    def summarizeStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/summarize/stream", query=query, body=body)

    def summarizeArticleStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/summarizeArticle/stream", query=query, body=body)

    def seoOptimize(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/seoOptimize", query=query, body=body)

    def seoOptimizeStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/seoOptimize/stream", query=query, body=body)

    def generateTitle(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/generateTitle", query=query, body=body)

    def translate(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/translate", query=query, body=body)

    def translateStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/translate/stream", query=query, body=body)

    def generateContent(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/generateContent", query=query, body=body)

    def optimizeArticleStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/optimizeArticle/stream", query=query, body=body)

    def translateArticleStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/translateArticle/stream", query=query, body=body)

    def repurpose(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/repurpose", query=query, body=body)

    def repurposeStream(self, body: Any, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("POST", "/ai/repurpose/stream", query=query, body=body)
