from _typeshed import Incomplete
from collections.abc import Generator

def single_source_shortest_path_length(G, source, cutoff: Incomplete | None = None): ...
def single_target_shortest_path_length(G, target, cutoff: Incomplete | None = None): ...
def all_pairs_shortest_path_length(G, cutoff: Incomplete | None = None) -> Generator[Incomplete, None, None]: ...
def bidirectional_shortest_path(G, source, target): ...
def single_source_shortest_path(G, source, cutoff: Incomplete | None = None): ...
def single_target_shortest_path(G, target, cutoff: Incomplete | None = None): ...
def all_pairs_shortest_path(G, cutoff: Incomplete | None = None) -> Generator[Incomplete, None, None]: ...
def predecessor(
    G, source, target: Incomplete | None = None, cutoff: Incomplete | None = None, return_seen: Incomplete | None = None
): ...
