# Stubs for galaxy.tools.deps.resolvers.modules (Python 3.4)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from typing import Any, Optional
from ..resolvers import Dependency, DependencyResolver, MappableDependencyResolver

class ModuleDependencyResolver(DependencyResolver, MappableDependencyResolver):
    dict_collection_visible_keys = ...  # type: Any
    resolver_type = ...  # type: str
    versionless = ...  # type: Any
    modulecmd = ...  # type: Any
    modulepath = ...  # type: Any
    default_indicator = ...  # type: Any
    module_checker = ...  # type: Any
    def __init__(self, dependency_manager, **kwds) -> None: ...
    def resolve(self, requirement, **kwds): ...

class DirectoryModuleChecker:
    module_dependency_resolver = ...  # type: Any
    directories = ...  # type: Any
    def __init__(self, module_dependency_resolver, modulepath, prefetch) -> None: ...
    def has_module(self, module, version): ...

class AvailModuleChecker:
    module_dependency_resolver = ...  # type: Any
    modulepath = ...  # type: Any
    default_indicator = ...  # type: Any
    prefetched_modules = ...  # type: Any
    def __init__(self, module_dependency_resolver, modulepath, prefetch, default_indicator: Any = ...) -> None: ...
    def has_module(self, module, version): ...

class ModuleDependency(Dependency):
    dict_collection_visible_keys = ...  # type: Any
    dependency_type = ...  # type: str
    module_dependency_resolver = ...  # type: Any
    module_name = ...  # type: Any
    module_version = ...  # type: Any
    def __init__(self, module_dependency_resolver, module_name, module_version: Optional[Any] = ..., exact: bool = ...) -> None: ...
    @property
    def exact(self): ...
    def shell_commands(self, requirement): ...
