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

import typing

from .resources.authentication.client import AsyncAuthenticationClient, AuthenticationClient
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)


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)
