# Stubs for networkx.utils.heaps (Python 3.5)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from typing import Any, Optional

class MinHeap:
    class _Item:
        key: Any = ...
        value: Any = ...
        def __init__(self, key, value) -> None: ...

    def __init__(self) -> None: ...
    def min(self): ...
    def pop(self): ...
    def get(self, key, default: Optional[Any] = ...): ...
    def insert(self, key, value, allow_increase: bool = ...): ...
    def __nonzero__(self): ...
    def __bool__(self): ...
    def __len__(self): ...
    def __contains__(self, key): ...

class PairingHeap(MinHeap):
    class _Node(MinHeap._Item):
        left: Any = ...
        next: Any = ...
        prev: Any = ...
        parent: Any = ...
        def __init__(self, key, value) -> None: ...

    def __init__(self) -> None: ...
    def min(self): ...
    def pop(self): ...
    def get(self, key, default: Optional[Any] = ...): ...
    def insert(self, key, value, allow_increase: bool = ...): ...

class BinaryHeap(MinHeap):
    def __init__(self) -> None: ...
    def min(self): ...
    def pop(self): ...
    def get(self, key, default: Optional[Any] = ...): ...
    def insert(self, key, value, allow_increase: bool = ...): ...
