from typing import Optional, Union

import gta
from gta.ped import Ped
from gta.vehicle import Vehicle

Model = Union[str, int]
Position = Union["gta.Vector3", tuple[float, float, float]]

def load_model(model: Model, timeout_ms: int = ...) -> int: ...
def release_model(model: Model) -> None: ...
def create_ped(model: Model, pos: Position, heading: float = ...,
               ped_type: int = ..., release_model_after: bool = ...) -> Optional[Ped]: ...
def create_vehicle(model: Model, pos: Position, heading: float = ...,
                   release_model_after: bool = ...) -> Optional[Vehicle]: ...
def get_all_peds() -> list[Ped]: ...
def get_all_vehicles() -> list[Vehicle]: ...
