###########################################################################
# common methods from _minmax_mixin
###########################################################################
# TODO: is this return type correct? no coo_array?
@overload
def max(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def max(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
@overload
def min(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def min(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
@overload
def nanmax(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def nanmax(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
@overload
def nanmin(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def nanmin(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
@overload
def argmax(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def argmax(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
@overload
def argmin(self, axis: None = ..., out: None = ...) -> np.number[Any]: ...
@overload
def argmin(
    self, axis: SupportsIndex, out: None = ...
) -> coo_matrix | np.number[Any]: ...
