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

from __future__ import annotations
from .event import Event, EventTypedDict
from .shipment import Shipment, ShipmentTypedDict
from .statistics import Statistics, StatisticsTypedDict
from .tracker import Tracker, TrackerTypedDict
from ship24.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class TrackingTypedDict(TypedDict):
    tracker: NotRequired[TrackerTypedDict]
    shipment: NotRequired[ShipmentTypedDict]
    events: NotRequired[List[EventTypedDict]]
    statistics: NotRequired[StatisticsTypedDict]


class Tracking(BaseModel):
    tracker: Optional[Tracker] = None

    shipment: Optional[Shipment] = None

    events: Optional[List[Event]] = None

    statistics: Optional[Statistics] = None


class CreateTrackerAndGetTrackingResultsResponseDataTypedDict(TypedDict):
    trackings: NotRequired[List[TrackingTypedDict]]


class CreateTrackerAndGetTrackingResultsResponseData(BaseModel):
    trackings: Optional[List[Tracking]] = None


class CreateTrackerAndGetTrackingResultsResponseTypedDict(TypedDict):
    data: CreateTrackerAndGetTrackingResultsResponseDataTypedDict


class CreateTrackerAndGetTrackingResultsResponse(BaseModel):
    data: CreateTrackerAndGetTrackingResultsResponseData
