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

from typing import Any, Optional

class GraphMatcher:
    G1: Any = ...
    G2: Any = ...
    G1_nodes: Any = ...
    G2_nodes: Any = ...
    old_recursion_limit: Any = ...
    test: str = ...
    def __init__(self, G1, G2) -> None: ...
    def reset_recursion_limit(self): ...
    def candidate_pairs_iter(self): ...
    core_1: Any = ...
    core_2: Any = ...
    inout_1: Any = ...
    inout_2: Any = ...
    state: Any = ...
    mapping: Any = ...
    def initialize(self): ...
    def is_isomorphic(self): ...
    def isomorphisms_iter(self): ...
    def match(self): ...
    def semantic_feasibility(self, G1_node, G2_node): ...
    def subgraph_is_isomorphic(self): ...
    def subgraph_isomorphisms_iter(self): ...
    def syntactic_feasibility(self, G1_node, G2_node): ...

class DiGraphMatcher(GraphMatcher):
    def __init__(self, G1, G2) -> None: ...
    def candidate_pairs_iter(self): ...
    core_1: Any = ...
    core_2: Any = ...
    in_1: Any = ...
    in_2: Any = ...
    out_1: Any = ...
    out_2: Any = ...
    state: Any = ...
    mapping: Any = ...
    def initialize(self): ...
    def syntactic_feasibility(self, G1_node, G2_node): ...

class GMState:
    GM: Any = ...
    G1_node: Any = ...
    G2_node: Any = ...
    depth: Any = ...
    def __init__(self, GM, G1_node: Optional[Any] = ..., G2_node: Optional[Any] = ...) -> None: ...
    def restore(self): ...

class DiGMState:
    GM: Any = ...
    G1_node: Any = ...
    G2_node: Any = ...
    depth: Any = ...
    def __init__(self, GM, G1_node: Optional[Any] = ..., G2_node: Optional[Any] = ...) -> None: ...
    def restore(self): ...
