from typing import Any, Dict, Type

from rest_framework import serializers
from rest_framework.request import Request
from rest_framework.serializers import BaseSerializer
from rest_framework.utils.field_mapping import ClassLookupDict
from rest_framework.views import APIView

class BaseMetadata:
    def determine_metadata(self, request: Request, view: APIView) -> Dict[str, Any]: ...

class SimpleMetadata(BaseMetadata):
    label_lookup: ClassLookupDict[Type[serializers.Field[Any, Any, Any, Any]], str]
    def determine_actions(self, request: Request, view: APIView) -> Dict[str, Any]: ...
    def get_serializer_info(self, serializer: BaseSerializer) -> Dict[str, Dict[str, Any]]: ...
    def get_field_info(self, field: serializers.Field[Any, Any, Any, Any]) -> Dict[str, Any]: ...
