from typing import Any, Dict

from django.http.response import HttpResponse

from rest_framework.serializers import BaseSerializer

class CreateModelMixin:
    def create(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...
    def perform_create(self, serializer: BaseSerializer) -> None: ...
    def get_success_headers(self, data: Any) -> Dict[str, str]: ...

class ListModelMixin:
    def list(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...

class RetrieveModelMixin:
    def retrieve(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...

class UpdateModelMixin:
    def update(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...
    def perform_update(self, serializer: BaseSerializer) -> None: ...
    def partial_update(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...

class DestroyModelMixin:
    def destroy(self, request: Any, *args: Any, **kwargs: Any) -> HttpResponse: ...
    def perform_destroy(self, instance: Any) -> None: ...
