from _typeshed import Incomplete
from io import BytesIO

class AliyunOSS:
    auth: Incomplete
    bucket: Incomplete
    def __init__(self, access_key_id: str, access_key_secret: str, endpoint: str, bucket_name: str) -> None: ...
    def upload(self, filepath: str, oss_key: str, replace: bool = False) -> bool: ...
    def download(self, oss_key: str, filepath: str, replace: bool = False) -> bool: ...
    def delete_file(self, oss_key: str) -> bool: ...
    def file_exists(self, oss_key: str) -> bool: ...
    def get_file_stream(self, oss_key: str) -> BytesIO: ...
    def create_folder(self, folder_path: str): ...
    def list_files(self, prefix: str = '', extensions=None): ...
    def batch_upload(self, filepaths: list[str], oss_keys: list[str], replace: bool = False, threads: int = 5): ...
    def batch_download(self, oss_keys: list[str], local_paths: list[str], replace: bool = False, threads: int = 5): ...
    def multipart_upload(self, filepath: str, oss_key: str): ...
    def download_folder(self, oss_folder: str, local_folder: str, threads: int = 5): ...
    def upload_folder(self, local_folder: str, oss_folder: str, replace: bool = False, threads: int = 5): ...
