"""
NAS API Module - FileStation Operations
"""

from .config import (
    BASE_URL,
    USERNAME,
    PASSWORD,
    DESTINATION_PATH,
    session,
    logger
)

from .exceptions import (
    NASAuthenticationError,
    NASConnectionError,
    NASAPIError
)

from .session import (
    save_sid,
    load_sid
)

from .auth import (
    login_with_otp,
    authenticate_with_otp
)

from .file_operations import (
    syno_entry_request,
    test_session_validity,
    list_folder_contents,
    list_shares,
    get_files_for_path,
    download_single_file_aria2,
    cleanup_duplicates_before_download,
    download_files_to_destination,
    download_files_as_single_zip,
)

__all__ = [
    # Config
    'BASE_URL',
    'USERNAME',
    'PASSWORD',
    'DESTINATION_PATH',
    'session',
    'logger',
    # Exceptions
    'NASAuthenticationError',
    'NASConnectionError',
    'NASAPIError',
    # Session
    'save_sid',
    'load_sid',
    # Auth
    'login_with_otp',
    'authenticate_with_otp',
    # File Operations
    'syno_entry_request',
    'test_session_validity',
    'list_folder_contents',
    'list_shares',
    'get_files_for_path',
    'download_single_file_aria2',
    'cleanup_duplicates_before_download',
    'download_files_to_destination',
    'download_files_as_single_zip',
]
