"""iisi-app-core public API."""

from .authz import Principal, Role
from .autoload import autoload
from .context import principal, set_principal
from .decorators import (
    adapter,
    clear_default_container,
    component,
    controller,
    get_default_container,
    policy,
    register,
    repository,
    seed,
    service,
    set_default_container,
    usecase,
)
from .exceptions import (
    DomainError,
    DomainValidationError,
    FeatureDisabledError,
    ForbiddenError,
    NotFoundError,
    UnauthorizedError,
)
from .feature_flags import clear_feature_flag_config, configure_feature_flags, feature_enabled
from .handlers import (
    ApiGatewayEventHandler,
    CorsPreflightRestHandler,
    CorsResponseHandler,
    EventBridgeEventHandler,
    JwtTokenHandler,
)

__all__ = [
    "ApiGatewayEventHandler",
    "CorsPreflightRestHandler",
    "CorsResponseHandler",
    "DomainError",
    "DomainValidationError",
    "FeatureDisabledError",
    "ForbiddenError",
    "EventBridgeEventHandler",
    "JwtTokenHandler",
    "NotFoundError",
    "Principal",
    "Role",
    "UnauthorizedError",
    "adapter",
    "autoload",
    "clear_default_container",
    "clear_feature_flag_config",
    "component",
    "configure_feature_flags",
    "controller",
    "feature_enabled",
    "get_default_container",
    "policy",
    "register",
    "repository",
    "seed",
    "service",
    "set_default_container",
    "set_principal",
    "usecase",
    "principal",
]
