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

from typing import Any, Optional, List
from .requirements import ToolRequirement as ToolRequirement, ToolRequirements as ToolRequirements
from .resolvers import NullDependency as NullDependency
from .resolvers.conda import CondaDependencyResolver as CondaDependencyResolver
from .resolvers.galaxy_packages import GalaxyPackageDependencyResolver as GalaxyPackageDependencyResolver
from .resolvers.tool_shed_packages import ToolShedPackageDependencyResolver as ToolShedPackageDependencyResolver

log = ...  # type: Any
CONFIG_VAL_NOT_FOUND = ...  # type: Any

def build_dependency_manager(app_config_dict: Any, resolution_config_dict: Any, conf_file: Any) -> DependencyManager: ...

class NullDependencyManager:
    dependency_resolvers = ...  # type: Any
    def uses_tool_shed_dependencies(self): ...
    def dependency_shell_commands(self, requirements: ToolRequirements, **kwds) -> List[str]: ...
    def find_dep(self, name, version: Optional[Any] = ..., type: str = ..., **kwds): ...

class DependencyManager:
    default_base_path = ...  # type: Any
    resolver_classes = ...  # type: Any
    dependency_resolvers = ...  # type: Any
    def __init__(self, default_base_path, conf_file: Optional[Any] = ..., app_config: Any = ...) -> None: ...
    def get_resolver_option(self, resolver, key, explicit_resolver_options: Any = ...): ...
    def get_app_option(self, key, default: Optional[Any] = ...): ...
    def dependency_shell_commands(self, requirements: ToolRequirements, **kwds) -> List[str]: ...
    def requirements_to_dependencies(self, requirements, **kwds): ...
    def uses_tool_shed_dependencies(self): ...
    def find_dep(self, name, version: Optional[Any] = ..., type: str = ..., **kwds): ...

class CachedDependencyManager(DependencyManager):
    tool_dependency_cache_dir = ...  # type: Any
    def __init__(self, default_base_path, conf_file: Optional[Any] = ..., app_config: Any = ..., tool_dependency_cache_dir: Optional[Any] = ...) -> None: ...
    def build_cache(self, requirements, **kwds): ...
    def dependency_shell_commands(self, requirements: ToolRequirements, **kwds) -> List[str]: ...
    def hash_dependencies(self, resolved_dependencies): ...
    def get_hashed_dependencies_path(self, resolved_dependencies): ...
