from ..file import File
from ..file_folder import FileFolder
from ...types.he import He


class Folder(FileFolder):
    def __init__(self, u: He, path: str): ...
    def __new__(cls, u: He, path: str): ...
    def is_exists(self)-> bool: ...
    def is_unexists(self)-> bool: ...
    def create(self)-> None: ...
    def child_file(self, name: str | list[str]) -> File: ...
    def child_folder(self, name: str | list[str]) -> Folder: ...

    def search_children_names(self)-> list[str]: ...
    def search_children_file_names(self)-> list[str]: ...
    def search_children_folder_names(self)-> list[str]: ...
    def search_usable_children_names(self)-> list[str]: ...
    def search_usable_children_file_names(self)-> list[str]: ...
    def search_usable_children_folder_names(self)-> list[str]: ...

    def search_children_paths(self)-> list[str]: ...
    def search_children_file_paths(self)-> list[str]: ...
    def search_children_folder_paths(self)-> list[str]: ...
    def search_usable_children_paths(self)-> list[str]: ...
    def search_usable_children_file_paths(self)-> list[str]: ...
    def search_usable_children_folder_paths(self)-> list[str]: ...

    def search_children_files(self)-> list[File]: ...
    def search_children_folders(self)-> list[Folder]: ...
    def search_usable_children_files(self)-> list[File]: ...
    def search_usable_children_folders(self)-> list[Folder]: ...
    def search_children(self)-> list[File | Folder]: ...
    def search_usable_children(self)-> list[File | Folder]: ...
    def copyto(self, target_folder: str | Folder): ...
