# Stubs for gc

from typing import Any, List, Tuple


def enable() -> None: ...
def disable() -> None: ...
def isenabled() -> bool: ...
def collect(generation: int = ...) -> int: ...
def set_debug(flags: int) -> None: ...
def get_debug() -> int: ...
def get_objects() -> List[Any]: ...
def set_threshold(threshold0: int, threshold1: int = ...,
                  threshold2: int = ...) -> None: ...
def get_count() -> Tuple[int, int, int]: ...
def get_threshold() -> Tuple[int, int, int]: ...
def get_referrers(*objs: Any) -> List[Any]: ...
def get_referents(*objs: Any) -> List[Any]: ...
def is_tracked(obj: Any) -> bool: ...

garbage = ... # type: List[Any]

DEBUG_STATS = ... # type: int
DEBUG_COLLECTABLE = ... # type: int
DEBUG_UNCOLLECTABLE = ... # type: int
DEBUG_INSTANCES = ... # type: int
DEBUG_OBJECTS = ... # type: int
DEBUG_SAVEALL = ... # type: int
DEBUG_LEAK = ... # type: int
