from typing import (
    Any,
    Callable,
    Dict,
    Iterable,
    List,
    Tuple,
    Union
)

def argsorted(iterable: Iterable, key: Callable = None, reverse: bool = False) -> List[int]: ...
def combinations_from_relations(dictionary: Dict[Any, Iterable], r: int) -> Iterable[Tuple]: ...
def itersubclasses(cls: type, seen: set = None) -> Iterable[type]: ...
def pad(iterable: Iterable, fillvalue: Any = None, nlead: int = 0, ntail: int = 0) -> Iterable: ...
def getitem(iterable: Iterable, idx: Union[int, Iterable[int]] = None, start: int = None, stop: int = None, step: int = None) -> Any: ...
def insert(iterable: Iterable, element: Any, idx: Union[int, Iterable[int]], unpack: bool = False) -> Iterable: ...
def replace(iterable: Iterable, element: Any, idx: Union[int, Iterable[int]] = None, start: int = None, stop: int = None, unpack: bool = False) -> Iterable: ...
def remove(iterable: Iterable, idx: Union[int, Iterable[int]]=None, start: int=None, stop: int=None) -> Iterable: ...
