# This file was auto-generated by Fern from our API Definition.

import typing

from .resources.authentication.client import AsyncAuthenticationClient, AuthenticationClient
from .resources.feedbacks.client import AsyncFeedbacksClient, FeedbacksClient
from .resources.inferences.client import AsyncInferencesClient, InferencesClient
from .resources.orgs.client import AsyncOrgsClient, OrgsClient
from .resources.prompt_versions.client import AsyncPromptVersionsClient, PromptVersionsClient
from .resources.prompts.client import AsyncPromptsClient, PromptsClient
from .resources.server_status.client import AsyncServerStatusClient, ServerStatusClient
from .resources.users.client import AsyncUsersClient, UsersClient


class PromptonApi:
    def __init__(self, *, environment: str, token: typing.Optional[str] = None):
        self._environment = environment
        self._token = token
        self.server_status = ServerStatusClient(environment=self._environment, token=self._token)
        self.authentication = AuthenticationClient(environment=self._environment, token=self._token)
        self.prompts = PromptsClient(environment=self._environment, token=self._token)
        self.prompt_versions = PromptVersionsClient(environment=self._environment, token=self._token)
        self.inferences = InferencesClient(environment=self._environment, token=self._token)
        self.orgs = OrgsClient(environment=self._environment, token=self._token)
        self.users = UsersClient(environment=self._environment, token=self._token)
        self.feedbacks = FeedbacksClient(environment=self._environment, token=self._token)


class AsyncPromptonApi:
    def __init__(self, *, environment: str, token: typing.Optional[str] = None):
        self._environment = environment
        self._token = token
        self.server_status = AsyncServerStatusClient(environment=self._environment, token=self._token)
        self.authentication = AsyncAuthenticationClient(environment=self._environment, token=self._token)
        self.prompts = AsyncPromptsClient(environment=self._environment, token=self._token)
        self.prompt_versions = AsyncPromptVersionsClient(environment=self._environment, token=self._token)
        self.inferences = AsyncInferencesClient(environment=self._environment, token=self._token)
        self.orgs = AsyncOrgsClient(environment=self._environment, token=self._token)
        self.users = AsyncUsersClient(environment=self._environment, token=self._token)
        self.feedbacks = AsyncFeedbacksClient(environment=self._environment, token=self._token)
