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

from __future__ import annotations
from .aggregationnumericop import AggregationNumericOp
from .aggregationstringop import AggregationStringOp
from dg_mol_track_client.types import BaseModel
from typing import Union
from typing_extensions import TypeAliasType, TypedDict


OperationTypedDict = TypeAliasType(
    "OperationTypedDict", Union[AggregationNumericOp, AggregationStringOp]
)


Operation = TypeAliasType("Operation", Union[AggregationNumericOp, AggregationStringOp])


class AggregationTypedDict(TypedDict):
    field: str
    operation: OperationTypedDict


class Aggregation(BaseModel):
    field: str

    operation: Operation
