from django.forms import MediaDefiningClass
from django.utils.functional import cached_property as cached_property
from wagtail import hooks as hooks
from wagtail.admin.forms.search import SearchForm as SearchForm

class SearchArea(metaclass=MediaDefiningClass):
    template: str
    label: str
    url: str
    classname: str
    icon_name: str
    name: str
    order: int
    attr_string: str
    def __init__(
        self, label, url, name=None, classname: str = "", icon_name: str = "", attrs=None, order: int = 1000
    ) -> None: ...
    def __lt__(self, other): ...
    def __le__(self, other): ...
    def __gt__(self, other): ...
    def __ge__(self, other): ...
    def __eq__(self, other): ...
    def is_shown(self, request): ...
    def is_active(self, request, current=None): ...
    def render_html(self, request, query, current=None): ...

class Search:
    register_hook_name: str
    construct_hook_name: str | None
    def __init__(self, register_hook_name, construct_hook_name=None) -> None: ...
    @cached_property
    def registered_search_areas(self): ...
    def search_items_for_request(self, request): ...
    def active_search(self, request, current=None): ...
    @property
    def media(self): ...
    def render_html(self, request, current=None): ...

admin_search_areas: Search
