import logging
from datazen.paths import get_file_ext as get_file_ext
from typing import Any, List, NamedTuple, TextIO

LOG: Any

class LoadResult(NamedTuple):
    data: dict
    success: bool

def get_json_data(data_file: TextIO, logger: logging.Logger = ...) -> LoadResult: ...
def get_yaml_data(data_file: TextIO, logger: logging.Logger = ...) -> LoadResult: ...
def load_stream(data_stream: TextIO, data_path: str, logger: logging.Logger = ...) -> LoadResult: ...
def dedup_dict_lists(data: dict) -> dict: ...
def merge_dicts(dicts: List[dict], expect_overwrite: bool = ..., logger: logging.Logger = ...) -> dict: ...
def merge(dict_a: dict, dict_b: dict, path: List[str] = ..., expect_overwrite: bool = ..., logger: logging.Logger = ...) -> dict: ...
def load(data_path: str, variables: dict, dict_to_update: dict, expect_overwrite: bool = ..., is_template: bool = ..., logger: logging.Logger = ...) -> LoadResult: ...
def get_hash(data: str, encoding: str = ...) -> str: ...
def get_file_hash(path: str) -> str: ...
def set_file_hash(hashes: dict, path: str, set_new: bool = ...) -> bool: ...
