"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .apisampledata import APISampleData, APISampleDataTypedDict
from supertone.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class GetAPICharacterResponseDataTypedDict(TypedDict):
    voice_id: str
    r"""Unique identifier for the voice"""
    name: str
    r"""Name of the voice"""
    description: str
    r"""Description of the voice"""
    age: str
    r"""Age of the voice"""
    gender: str
    r"""Gender of the voice"""
    use_case: str
    r"""Use case of the voice"""
    use_cases: List[str]
    r"""Use cases of the voice (array)"""
    language: List[str]
    r"""Languages supported by the voice"""
    styles: List[str]
    r"""Styles available for the voice"""
    models: List[str]
    r"""Models available for the voice"""
    samples: NotRequired[List[APISampleDataTypedDict]]
    r"""URL to the sample audio file for the voice"""
    thumbnail_image_url: NotRequired[str]
    r"""URL to the thumbnail image for the voice"""


class GetAPICharacterResponseData(BaseModel):
    voice_id: str
    r"""Unique identifier for the voice"""

    name: str
    r"""Name of the voice"""

    description: str
    r"""Description of the voice"""

    age: str
    r"""Age of the voice"""

    gender: str
    r"""Gender of the voice"""

    use_case: str
    r"""Use case of the voice"""

    use_cases: List[str]
    r"""Use cases of the voice (array)"""

    language: List[str]
    r"""Languages supported by the voice"""

    styles: List[str]
    r"""Styles available for the voice"""

    models: List[str]
    r"""Models available for the voice"""

    samples: Optional[List[APISampleData]] = None
    r"""URL to the sample audio file for the voice"""

    thumbnail_image_url: Optional[str] = None
    r"""URL to the thumbnail image for the voice"""
