"""
ThrillWiki API v1 serializers module.

This module re-exports the explicit serializer names defined in the
package-level 'serializers' package (backend/apps/api/v1/serializers/__init__.py).
It avoids dynamic importlib usage and provides a stable, statically analyzable
re-export surface for linters.
"""

from typing import Any

# Instead of trying to import from .serializers (which causes a self-import
# / circular-import problem in this module), declare stable placeholders.
# Importers (e.g. views) can still do `from .serializers import LoginInputSerializer`
# and static analysis will see the symbol. At runtime, these may be replaced
# by the real serializers by the package-level serializers package, or left
# as None in environments where the package isn't available.
LoginInputSerializer: Any = None
LoginOutputSerializer: Any = None
SignupInputSerializer: Any = None
SignupOutputSerializer: Any = None
LogoutOutputSerializer: Any = None
UserOutputSerializer: Any = None
PasswordResetInputSerializer: Any = None
PasswordResetOutputSerializer: Any = None
PasswordChangeInputSerializer: Any = None
PasswordChangeOutputSerializer: Any = None
SocialProviderOutputSerializer: Any = None
AuthStatusOutputSerializer: Any = None
UserProfileCreateInputSerializer: Any = None
UserProfileUpdateInputSerializer: Any = None
UserProfileOutputSerializer: Any = None


# Explicit __all__ for static analysis — update this list if new serializers are added.
__all__ = (
    "LoginInputSerializer",
    "LoginOutputSerializer",
    "SignupInputSerializer",
    "SignupOutputSerializer",
    "LogoutOutputSerializer",
    "UserOutputSerializer",
    "PasswordResetInputSerializer",
    "PasswordResetOutputSerializer",
    "PasswordChangeInputSerializer",
    "PasswordChangeOutputSerializer",
    "SocialProviderOutputSerializer",
    "AuthStatusOutputSerializer",
    "UserProfileCreateInputSerializer",
    "UserProfileUpdateInputSerializer",
    "UserProfileOutputSerializer",
)
