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

from __future__ import annotations
import httpx
from moovio_sdk.models.components import statement as components_statement
from moovio_sdk.types import BaseModel
from moovio_sdk.utils import FieldMetadata, PathParamMetadata
import pydantic
from typing import Dict, List, Union
from typing_extensions import Annotated, TypeAliasType, TypedDict


class GetStatementRequestTypedDict(TypedDict):
    account_id: str
    statement_id: str


class GetStatementRequest(BaseModel):
    account_id: Annotated[
        str,
        pydantic.Field(alias="accountID"),
        FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
    ]

    statement_id: Annotated[
        str,
        pydantic.Field(alias="statementID"),
        FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
    ]


GetStatementResponseResultTypedDict = TypeAliasType(
    "GetStatementResponseResultTypedDict",
    Union[components_statement.StatementTypedDict, httpx.Response],
)


GetStatementResponseResult = TypeAliasType(
    "GetStatementResponseResult", Union[components_statement.Statement, httpx.Response]
)


class GetStatementResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: GetStatementResponseResultTypedDict


class GetStatementResponse(BaseModel):
    headers: Dict[str, List[str]]

    result: GetStatementResponseResult
