"""First-class Forms product domain.

Vocabulary (7B), validation (7C), runtime (7D), persistence (7E), files (7F),
anti-abuse (7G), post-submit actions (7H), CRM composition (7I),
email composition (7J), automation/webhook composition (7K),
conditional logic (7L), multi-step (7M), public runtime (7N),
Codegen (7O), composition binding (7P), end-to-end proof (7Q).
Not a connector family. Not `form.standard`. `forms.contact` remains a
Contact Form App Block whose runtime binds `form_key=contact`.
"""
from src.domain.forms.actions import (
    FORMS_POST_SUBMIT_ACTIONS,
    execute_post_submit_actions,
)
from src.domain.forms.anti_abuse import (
    FORMS_ANTI_ABUSE,
    process_form_submission_request,
)
from src.domain.forms.automation import FORMS_AUTOMATION_COMPOSITION
from src.domain.forms.canonical import (
    FORMS_CANONICAL_MODEL,
    FormDefinition,
    FormField,
    FormFieldOption,
    FormFileRef,
    FormSubmission,
    project_form_definition,
)
from src.domain.forms.conditions import FORMS_CONDITIONAL_LOGIC
from src.domain.forms.crm import FORMS_CRM_COMPOSITION
from src.domain.forms.email import FORMS_EMAIL_COMPOSITION
from src.domain.forms.files import (
    FORMS_FILE_UPLOADS,
    accept_form_submission_with_files,
)
from src.domain.forms.forward import FORMS_HTTP_FORWARD_COMPOSITION
from src.domain.forms.persistence import (
    FORMS_PERSISTENCE,
    FormPersistenceContext,
    InMemoryFormSubmissionStore,
    PersistedFormSubmission,
    get_form_submission,
    persist_form_submission,
)
from src.domain.forms.public import FORMS_PUBLIC_RUNTIME, submit_form
from src.domain.forms.runtime import (
    FORMS_SUBMISSION_RUNTIME,
    AcceptedFormSubmission,
    FormSubmissionRuntimeResult,
    accept_form_submission,
)
from src.domain.forms.steps import FORMS_MULTI_STEP
from src.domain.forms.validation import (
    FORMS_VALIDATION_SEMANTICS,
    FormValidationResult,
    validate_form_values,
)

__all__ = (
    "FORMS_ANTI_ABUSE",
    "FORMS_AUTOMATION_COMPOSITION",
    "FORMS_CANONICAL_MODEL",
    "FORMS_CONDITIONAL_LOGIC",
    "FORMS_MULTI_STEP",
    "FORMS_CRM_COMPOSITION",
    "FORMS_EMAIL_COMPOSITION",
    "FORMS_FILE_UPLOADS",
    "FORMS_HTTP_FORWARD_COMPOSITION",
    "FORMS_POST_SUBMIT_ACTIONS",
    "FORMS_PERSISTENCE",
    "FORMS_PUBLIC_RUNTIME",
    "FORMS_SUBMISSION_RUNTIME",
    "FORMS_VALIDATION_SEMANTICS",
    "AcceptedFormSubmission",
    "FormDefinition",
    "FormField",
    "FormFieldOption",
    "FormFileRef",
    "project_form_definition",
    "FormPersistenceContext",
    "FormSubmission",
    "FormSubmissionRuntimeResult",
    "FormValidationResult",
    "InMemoryFormSubmissionStore",
    "PersistedFormSubmission",
    "accept_form_submission",
    "accept_form_submission_with_files",
    "execute_post_submit_actions",
    "get_form_submission",
    "persist_form_submission",
    "process_form_submission_request",
    "submit_form",
    "validate_form_values",
)
