def broadcast_shapes(*args: NdShapeLike | Sequence[NdShapeLike]) -> NdShape:
    """

    Broadcast the input shapes into a single shape.

    Parameters
    ----------
    `*args` : tuples of ints, or ints
        The shapes to be broadcast against each other.

    Returns
    -------
    tuple : Broadcasted shape.

    See Also
    --------
    numpy.broadcast_shapes

    Availability
    --------
    Multiple GPUs, Multiple CPUs

    """
    # TODO: expected "Union[SupportsIndex, Sequence[SupportsIndex]]"
    return np.broadcast_shapes(*args)  # type: ignore [arg-type]


    Broadcast the input shapes into a single shape.

    Parameters
    ----------
    `*args` : tuples of ints, or ints
        The shapes to be broadcast against each other.

    Returns
    -------
    tuple : Broadcasted shape.

    See Also
    --------
    numpy.broadcast_shapes

    Availability
    --------
    Multiple GPUs, Multiple CPUs

    
cupynumeric/_module/array_dimension.py