# Stubs for xeno.attributes (Python 3)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from .errors import InjectionError
from .utils import bind_unbound_method, get_params_from_signature
from typing import Any

NOTHING: Any

class Attributes:
    attr_map: Any = ...
    def __init__(self) -> None: ...
    @staticmethod
    def for_object(obj: Any, create: bool = ..., write: bool = ..., factory: Any = ...): ...
    def put(self, attr: Any, value: bool = ...): ...
    def get(self, attr: Any, default_value: Any = ...): ...
    def check(self, attr: Any): ...
    def merge(self, attr: Any): ...

class ClassAttributes(Attributes):
    @staticmethod
    def for_class(class_: Any, create: bool = ..., write: bool = ...): ...
    @staticmethod
    def for_object(obj: Any, create: bool = ..., write: bool = ...): ...
    def __init__(self, class_: Any) -> None: ...

class MethodAttributes(Attributes):
    @staticmethod
    def for_method(f: Any, create: bool = ..., write: bool = ...): ...
    @staticmethod
    def wraps(f1: Any): ...
    @staticmethod
    def add(name: Any, value: bool = ...): ...
    def __init__(self, f: Any) -> None: ...

def get_injection_params(f: Any, unbound_ctor: bool = ...): ...
def scan_methods(obj: Any, filter_f: Any) -> None: ...
def get_injection_points(obj: Any): ...
def get_providers(obj: Any): ...
