from collections.abc import Callable
from typing import Any

from django.contrib.auth.models import Permission
from django.db.models.query import QuerySet
from django.http import HttpRequest, HttpResponse
from wagtail.log_actions import LogActionRegistry
from wagtail.models import Page

def require_wagtail_login(next: str) -> HttpResponse: ...
def check_view_restrictions(callback: Callable[..., HttpResponse]) -> Callable[..., HttpResponse]: ...
def register_core_features(features: Any) -> None: ...
def register_workflow_permissions() -> QuerySet[Permission]: ...
def register_task_permissions() -> QuerySet[Permission]: ...
def describe_collection_children(collection: Any) -> dict[str, Any] | None: ...
def register_core_log_actions(actions: LogActionRegistry) -> None: ...
def register_workflow_log_actions(actions: LogActionRegistry) -> None: ...
def check_request_method(page: Page, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse | None: ...
