import logging
from cerberus import Validator
from datazen.classes.valid_dict import ValidDict as ValidDict
from datazen.load import DEFAULT_LOADS as DEFAULT_LOADS, LoadedFiles as LoadedFiles, load_dir as load_dir
from typing import Any, Dict, Iterator, List

LOG: Any

def load(directories: List[str], require_all: bool = ..., loads: LoadedFiles = ...) -> dict: ...
def add_global_schemas(schema_data: Dict[str, dict], logger: logging.Logger = ...) -> None: ...
def remove_global_schemas(schema_data: Dict[str, dict], logger: logging.Logger = ...) -> None: ...
def load_types(directories: List[str], loads: LoadedFiles = ...) -> Dict[str, dict]: ...
def validate(schema_data: Dict[str, Validator], data: dict, logger: logging.Logger = ...) -> bool: ...
def inject_custom_schemas(schema_data: Dict[str, dict], should_inject: bool = ..., logger: logging.Logger = ...) -> Iterator[None]: ...
