from datazen.enums import DataType as DataType
from datazen.paths import resolve_dir as resolve_dir
from typing import Any, List

class EnvironmentNamespace:
    directories: Any
    data: Any
    data_clone_strategy: Any
    valid: bool
    lock: Any
    logger: Any
    def __init__(self, name: str) -> None: ...
    def get_to_load(self, dir_type: DataType) -> List[str]: ...
    def unload(self, dir_type: DataType) -> None: ...
    def unload_all(self) -> None: ...
    def update_load_state(self, dir_type: DataType, to_load: List[str]) -> int: ...
    def add_dir(self, dir_type: DataType, dir_path: str, rel_path: str = ..., allow_dup: bool = ...) -> bool: ...
    def add_dirs(self, dir_type: DataType, dir_paths: List[str], rel_path: str = ..., allow_dup: bool = ...) -> int: ...

def clone(env: EnvironmentNamespace, update: EnvironmentNamespace) -> EnvironmentNamespace: ...
