# Stubs for gc

from typing import Any, Dict, List, Tuple


DEBUG_COLLECTABLE = ...  # type: int
DEBUG_LEAK = ...  # type: int
DEBUG_SAVEALL = ...  # type: int
DEBUG_STATS = ...  # type: int
DEBUG_UNCOLLECTABLE = ...  # type: int
callbacks = ...  # type: List[Any]
garbage = ...  # type: List[Any]

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