from _typeshed import Incomplete
from django.views.generic import TemplateView
from django.views.generic.detail import SingleObjectMixin
from wagtail.actions.copy_for_translation import CopyPageForTranslationAction as CopyPageForTranslationAction
from wagtail.admin import messages as messages
from wagtail.models import DraftStateMixin as DraftStateMixin
from wagtail.models import Page as Page
from wagtail.models import TranslatableMixin as TranslatableMixin
from wagtail.snippets.views.snippets import get_snippet_model_from_url_params as get_snippet_model_from_url_params

from .forms import SubmitTranslationForm as SubmitTranslationForm

class SubmitTranslationView(SingleObjectMixin, TemplateView):
    template_name: str
    title: Incomplete
    def get_title(self): ...
    def get_subtitle(self): ...
    def get_form(self): ...
    def get_success_url(self, translated_object=None) -> None: ...
    def get_context_data(self, **kwargs): ...
    def post(self, request, **kwargs): ...
    object: Incomplete
    def dispatch(self, request, *args, **kwargs): ...

class SubmitPageTranslationView(SubmitTranslationView):
    title: Incomplete
    def get_subtitle(self): ...
    def get_object(self): ...
    def get_success_url(self, translated_page=None): ...
    def get_success_message(self, locales): ...

class SubmitSnippetTranslationView(SubmitTranslationView):
    def get_title(self): ...
    def get_object(self): ...
    def get_success_url(self, translated_snippet=None): ...
    def get_success_message(self, locales): ...
