import typing

import android.app
import android.content
import android.graphics.drawable
import android.icu.util
import android.os
import android.text
import android.text.style
import android.view
import java
import java.chaquopy
import java.lang
import java.time
import java.util
import java.util.function

class ConversationAction(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ConversationAction]] = ...
    TYPE_CALL_PHONE: typing.ClassVar[str] = ...
    TYPE_CREATE_REMINDER: typing.ClassVar[str] = ...
    TYPE_OPEN_URL: typing.ClassVar[str] = ...
    TYPE_SEND_EMAIL: typing.ClassVar[str] = ...
    TYPE_SEND_SMS: typing.ClassVar[str] = ...
    TYPE_SHARE_LOCATION: typing.ClassVar[str] = ...
    TYPE_TEXT_REPLY: typing.ClassVar[str] = ...
    TYPE_TRACK_FLIGHT: typing.ClassVar[str] = ...
    TYPE_VIEW_CALENDAR: typing.ClassVar[str] = ...
    TYPE_VIEW_MAP: typing.ClassVar[str] = ...
    def describeContents(self) -> int: ...
    def getAction(self) -> android.app.RemoteAction | None: ...
    def getConfidenceScore(self) -> float: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getTextReply(self) -> java.lang.CharSequence | None: ...
    def getType(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, actionType: str | java.lang.String, /) -> None: ...
        def build(self) -> ConversationAction: ...
        def setAction(self, action: android.app.RemoteAction, /) -> ConversationAction.Builder: ...
        def setConfidenceScore(self, score: float | java.jfloat | java.lang.Float, /) -> ConversationAction.Builder: ...
        def setExtras(self, extras: android.os.Bundle, /) -> ConversationAction.Builder: ...
        def setTextReply(self, textReply: java.lang.CharSequence, /) -> ConversationAction.Builder: ...

class ConversationActions(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ConversationActions]] = ...
    def __init__(self, conversationActions: java.util.List[ConversationAction], id: str | java.lang.String, /) -> None: ...
    def describeContents(self) -> int: ...
    def getConversationActions(self) -> java.util.List[ConversationAction]: ...
    def getId(self) -> str | None: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Request(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ConversationActions.Request]] = ...
        HINT_FOR_IN_APP: typing.ClassVar[str] = ...
        HINT_FOR_NOTIFICATION: typing.ClassVar[str] = ...
        def describeContents(self) -> int: ...
        def getCallingPackageName(self) -> str: ...
        def getConversation(self) -> java.util.List[ConversationActions.Message]: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getHints(self) -> java.util.List[java.lang.String]: ...
        def getMaxSuggestions(self) -> int: ...
        def getTypeConfig(self) -> TextClassifier.EntityConfig: ...
        def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, conversation: java.util.List[ConversationActions.Message], /) -> None: ...
            def build(self) -> ConversationActions.Request: ...
            def setExtras(self, bundle: android.os.Bundle, /) -> ConversationActions.Request.Builder: ...
            def setHints(self, hints: java.util.List[java.lang.String], /) -> ConversationActions.Request.Builder: ...
            def setMaxSuggestions(self, maxSuggestions: int | java.jint | java.lang.Integer, /) -> ConversationActions.Request.Builder: ...
            def setTypeConfig(self, typeConfig: TextClassifier.EntityConfig, /) -> ConversationActions.Request.Builder: ...

    class Message(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ConversationActions.Message]] = ...
        PERSON_USER_OTHERS: typing.ClassVar[android.app.Person] = ...
        PERSON_USER_SELF: typing.ClassVar[android.app.Person] = ...
        def describeContents(self) -> int: ...
        def getAuthor(self) -> android.app.Person: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getReferenceTime(self) -> java.time.ZonedDateTime: ...
        def getText(self) -> java.lang.CharSequence: ...
        def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, author: android.app.Person, /) -> None: ...
            def build(self) -> ConversationActions.Message: ...
            def setExtras(self, bundle: android.os.Bundle, /) -> ConversationActions.Message.Builder: ...
            def setReferenceTime(self, referenceTime: java.time.ZonedDateTime, /) -> ConversationActions.Message.Builder: ...
            def setText(self, text: java.lang.CharSequence, /) -> ConversationActions.Message.Builder: ...

class SelectionEvent(android.os.Parcelable):
    ACTION_ABANDON: typing.ClassVar[int] = ...
    ACTION_COPY: typing.ClassVar[int] = ...
    ACTION_CUT: typing.ClassVar[int] = ...
    ACTION_DRAG: typing.ClassVar[int] = ...
    ACTION_OTHER: typing.ClassVar[int] = ...
    ACTION_OVERTYPE: typing.ClassVar[int] = ...
    ACTION_PASTE: typing.ClassVar[int] = ...
    ACTION_RESET: typing.ClassVar[int] = ...
    ACTION_SELECT_ALL: typing.ClassVar[int] = ...
    ACTION_SHARE: typing.ClassVar[int] = ...
    ACTION_SMART_SHARE: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SelectionEvent]] = ...
    EVENT_AUTO_SELECTION: typing.ClassVar[int] = ...
    EVENT_SELECTION_MODIFIED: typing.ClassVar[int] = ...
    EVENT_SELECTION_STARTED: typing.ClassVar[int] = ...
    EVENT_SMART_SELECTION_MULTI: typing.ClassVar[int] = ...
    EVENT_SMART_SELECTION_SINGLE: typing.ClassVar[int] = ...
    INVOCATION_LINK: typing.ClassVar[int] = ...
    INVOCATION_MANUAL: typing.ClassVar[int] = ...
    INVOCATION_UNKNOWN: typing.ClassVar[int] = ...
    @typing.overload
    @staticmethod
    def createSelectionActionEvent(start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, actionType: int | java.jint | java.lang.Integer, /) -> SelectionEvent: ...
    @typing.overload
    @staticmethod
    def createSelectionActionEvent(start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, actionType: int | java.jint | java.lang.Integer, classification: TextClassification, /) -> SelectionEvent: ...
    @typing.overload
    @staticmethod
    def createSelectionModifiedEvent(start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, /) -> SelectionEvent: ...
    @typing.overload
    @staticmethod
    def createSelectionModifiedEvent(start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, classification: TextClassification, /) -> SelectionEvent: ...
    @typing.overload
    @staticmethod
    def createSelectionModifiedEvent(start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, selection: TextSelection, /) -> SelectionEvent: ...
    @staticmethod
    def createSelectionStartedEvent(invocationMethod: int | java.jint | java.lang.Integer, start: int | java.jint | java.lang.Integer, /) -> SelectionEvent: ...
    def describeContents(self) -> int: ...
    def equals(self, obj: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getDurationSincePreviousEvent(self) -> int: ...
    def getDurationSinceSessionStart(self) -> int: ...
    def getEnd(self) -> int: ...
    def getEntityType(self) -> str: ...
    def getEventIndex(self) -> int: ...
    def getEventTime(self) -> int: ...
    def getEventType(self) -> int: ...
    def getInvocationMethod(self) -> int: ...
    def getPackageName(self) -> str: ...
    def getResultId(self) -> str | None: ...
    def getSessionId(self) -> TextClassificationSessionId | None: ...
    def getSmartEnd(self) -> int: ...
    def getSmartStart(self) -> int: ...
    def getStart(self) -> int: ...
    def getWidgetType(self) -> str: ...
    def getWidgetVersion(self) -> str | None: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def isTerminal(eventType: int | java.jint | java.lang.Integer, /) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class TextClassification(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassification]] = ...
    def describeContents(self) -> int: ...
    def getActions(self) -> java.util.List[android.app.RemoteAction]: ...
    def getConfidenceScore(self, entity: str | java.lang.String, /) -> float: ...
    def getEntity(self, index: int | java.jint | java.lang.Integer, /) -> str: ...
    def getEntityCount(self) -> int: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getIcon(self) -> android.graphics.drawable.Drawable | None: ...
    def getId(self) -> str | None: ...
    def getIntent(self) -> android.content.Intent | None: ...
    def getLabel(self) -> java.lang.CharSequence | None: ...
    def getOnClickListener(self) -> android.view.View.OnClickListener | None: ...
    def getText(self) -> str | None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Request(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassification.Request]] = ...
        def describeContents(self) -> int: ...
        def getCallingPackageName(self) -> str: ...
        def getDefaultLocales(self) -> android.os.LocaleList: ...
        def getEndIndex(self) -> int: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getReferenceTime(self) -> java.time.ZonedDateTime: ...
        def getStartIndex(self) -> int: ...
        def getText(self) -> java.lang.CharSequence: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, text: java.lang.CharSequence, startIndex: int | java.jint | java.lang.Integer, endIndex: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextClassification.Request: ...
            def setDefaultLocales(self, defaultLocales: android.os.LocaleList, /) -> TextClassification.Request.Builder: ...
            def setExtras(self, extras: android.os.Bundle, /) -> TextClassification.Request.Builder: ...
            def setReferenceTime(self, referenceTime: java.time.ZonedDateTime, /) -> TextClassification.Request.Builder: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def addAction(self, action: android.app.RemoteAction, /) -> TextClassification.Builder: ...
        def build(self) -> TextClassification: ...
        def setEntityType(self, type: str | java.lang.String, confidenceScore: float | java.jfloat | java.lang.Float, /) -> TextClassification.Builder: ...
        def setExtras(self, extras: android.os.Bundle, /) -> TextClassification.Builder: ...
        def setIcon(self, icon: android.graphics.drawable.Drawable, /) -> TextClassification.Builder: ...
        def setId(self, id: str | java.lang.String, /) -> TextClassification.Builder: ...
        def setIntent(self, intent: android.content.Intent, /) -> TextClassification.Builder: ...
        def setLabel(self, label: str | java.lang.String, /) -> TextClassification.Builder: ...
        def setOnClickListener(self, onClickListener: android.view.View.OnClickListener, /) -> TextClassification.Builder: ...
        def setText(self, text: str | java.lang.String, /) -> TextClassification.Builder: ...

class TextClassificationContext(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassificationContext]] = ...
    def describeContents(self) -> int: ...
    def getPackageName(self) -> str: ...
    def getWidgetType(self) -> str: ...
    def getWidgetVersion(self) -> str | None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        def __init__(self, packageName: str | java.lang.String, widgetType: str | java.lang.String, /) -> None: ...
        def build(self) -> TextClassificationContext: ...
        def setWidgetVersion(self, widgetVersion: str | java.lang.String, /) -> TextClassificationContext.Builder: ...

class TextClassificationManager(java.lang.Object):
    def createTextClassificationSession(self, classificationContext: TextClassificationContext, /) -> TextClassifier: ...
    def getTextClassifier(self) -> TextClassifier: ...
    def setTextClassificationSessionFactory(self, factory: TextClassificationSessionFactory, /) -> None: ...
    def setTextClassifier(self, textClassifier: TextClassifier, /) -> None: ...

class TextClassificationSessionFactory(java.lang.Object):
    def createTextClassificationSession(self, arg1: TextClassificationContext, /) -> TextClassifier: ...

class TextClassificationSessionId(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassificationSessionId]] = ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getValue(self) -> str: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class TextClassifier(java.lang.Object):
    EXTRA_FROM_TEXT_CLASSIFIER: typing.ClassVar[str] = ...
    EXTRA_TEXT_ORIGIN_PACKAGE: typing.ClassVar[str] = ...
    HINT_TEXT_IS_EDITABLE: typing.ClassVar[str] = ...
    HINT_TEXT_IS_NOT_EDITABLE: typing.ClassVar[str] = ...
    NO_OP: typing.ClassVar[TextClassifier] = ...
    TYPE_ADDRESS: typing.ClassVar[str] = ...
    TYPE_DATE: typing.ClassVar[str] = ...
    TYPE_DATE_TIME: typing.ClassVar[str] = ...
    TYPE_EMAIL: typing.ClassVar[str] = ...
    TYPE_FLIGHT_NUMBER: typing.ClassVar[str] = ...
    TYPE_OTHER: typing.ClassVar[str] = ...
    TYPE_OTP: typing.ClassVar[str] = ...
    TYPE_PHONE: typing.ClassVar[str] = ...
    TYPE_UNKNOWN: typing.ClassVar[str] = ...
    TYPE_URL: typing.ClassVar[str] = ...
    WIDGET_TYPE_CLIPBOARD: typing.ClassVar[str] = ...
    WIDGET_TYPE_CUSTOM_EDITTEXT: typing.ClassVar[str] = ...
    WIDGET_TYPE_CUSTOM_TEXTVIEW: typing.ClassVar[str] = ...
    WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW: typing.ClassVar[str] = ...
    WIDGET_TYPE_EDITTEXT: typing.ClassVar[str] = ...
    WIDGET_TYPE_EDIT_WEBVIEW: typing.ClassVar[str] = ...
    WIDGET_TYPE_NOTIFICATION: typing.ClassVar[str] = ...
    WIDGET_TYPE_TEXTVIEW: typing.ClassVar[str] = ...
    WIDGET_TYPE_UNKNOWN: typing.ClassVar[str] = ...
    WIDGET_TYPE_UNSELECTABLE_TEXTVIEW: typing.ClassVar[str] = ...
    WIDGET_TYPE_WEBVIEW: typing.ClassVar[str] = ...
    @typing.overload
    def classifyText(self, request: TextClassification.Request, /) -> TextClassification: ...
    @typing.overload
    def classifyText(self, text: java.lang.CharSequence, startIndex: int | java.jint | java.lang.Integer, endIndex: int | java.jint | java.lang.Integer, defaultLocales: android.os.LocaleList, /) -> TextClassification: ...
    def destroy(self) -> None: ...
    def detectLanguage(self, request: TextLanguage.Request, /) -> TextLanguage: ...
    def generateLinks(self, request: TextLinks.Request, /) -> TextLinks: ...
    def getMaxGenerateLinksTextLength(self) -> int: ...
    def isDestroyed(self) -> bool: ...
    def onSelectionEvent(self, event: SelectionEvent, /) -> None: ...
    def onTextClassifierEvent(self, event: TextClassifierEvent, /) -> None: ...
    def suggestConversationActions(self, request: ConversationActions.Request, /) -> ConversationActions: ...
    @typing.overload
    def suggestSelection(self, request: TextSelection.Request, /) -> TextSelection: ...
    @typing.overload
    def suggestSelection(self, text: java.lang.CharSequence, selectionStartIndex: int | java.jint | java.lang.Integer, selectionEndIndex: int | java.jint | java.lang.Integer, defaultLocales: android.os.LocaleList, /) -> TextSelection: ...

    class EntityConfig(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifier.EntityConfig]] = ...
        @staticmethod
        def create(hints: java.util.Collection[java.lang.String], includedEntityTypes: java.util.Collection[java.lang.String], excludedEntityTypes: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig: ...
        @staticmethod
        def createWithExplicitEntityList(entityTypes: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig: ...
        @staticmethod
        def createWithHints(hints: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig: ...
        def describeContents(self) -> int: ...
        def getHints(self) -> java.util.Collection[java.lang.String]: ...
        def resolveEntityListModifications(self, entityTypes: java.util.Collection[java.lang.String], /) -> java.util.Collection[java.lang.String]: ...
        def shouldIncludeTypesFromTextClassifier(self) -> bool: ...
        def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self) -> None: ...
            def build(self) -> TextClassifier.EntityConfig: ...
            def includeTypesFromTextClassifier(self, includeTypesFromTextClassifier: bool | java.jboolean | java.lang.Boolean, /) -> TextClassifier.EntityConfig.Builder: ...
            def setExcludedTypes(self, excludedTypes: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig.Builder: ...
            def setHints(self, hints: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig.Builder: ...
            def setIncludedTypes(self, includedTypes: java.util.Collection[java.lang.String], /) -> TextClassifier.EntityConfig.Builder: ...


_TextClassifierEvent__Builder__T = typing.TypeVar('_TextClassifierEvent__Builder__T', bound=TextClassifierEvent.Builder[T])  # <T>
class TextClassifierEvent(android.os.Parcelable):
    CATEGORY_CONVERSATION_ACTIONS: typing.ClassVar[int] = ...
    CATEGORY_LANGUAGE_DETECTION: typing.ClassVar[int] = ...
    CATEGORY_LINKIFY: typing.ClassVar[int] = ...
    CATEGORY_SELECTION: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifierEvent]] = ...
    TYPE_ACTIONS_GENERATED: typing.ClassVar[int] = ...
    TYPE_ACTIONS_SHOWN: typing.ClassVar[int] = ...
    TYPE_AUTO_SELECTION: typing.ClassVar[int] = ...
    TYPE_COPY_ACTION: typing.ClassVar[int] = ...
    TYPE_CUT_ACTION: typing.ClassVar[int] = ...
    TYPE_LINKS_GENERATED: typing.ClassVar[int] = ...
    TYPE_LINK_CLICKED: typing.ClassVar[int] = ...
    TYPE_MANUAL_REPLY: typing.ClassVar[int] = ...
    TYPE_OTHER_ACTION: typing.ClassVar[int] = ...
    TYPE_OVERTYPE: typing.ClassVar[int] = ...
    TYPE_PASTE_ACTION: typing.ClassVar[int] = ...
    TYPE_SELECTION_DESTROYED: typing.ClassVar[int] = ...
    TYPE_SELECTION_DRAG: typing.ClassVar[int] = ...
    TYPE_SELECTION_MODIFIED: typing.ClassVar[int] = ...
    TYPE_SELECTION_RESET: typing.ClassVar[int] = ...
    TYPE_SELECTION_STARTED: typing.ClassVar[int] = ...
    TYPE_SELECT_ALL: typing.ClassVar[int] = ...
    TYPE_SHARE_ACTION: typing.ClassVar[int] = ...
    TYPE_SMART_ACTION: typing.ClassVar[int] = ...
    TYPE_SMART_SELECTION_MULTI: typing.ClassVar[int] = ...
    TYPE_SMART_SELECTION_SINGLE: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def getActionIndices(self) -> java.chaquopy.JavaArrayJInt: ...
    def getEntityTypes(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getEventCategory(self) -> int: ...
    def getEventContext(self) -> TextClassificationContext | None: ...
    def getEventIndex(self) -> int: ...
    def getEventType(self) -> int: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getLocale(self) -> android.icu.util.ULocale | None: ...
    def getModelName(self) -> str | None: ...
    def getResultId(self) -> str | None: ...
    def getScores(self) -> java.chaquopy.JavaArrayJFloat: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class TextSelectionEvent(TextClassifierEvent, android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifierEvent.TextSelectionEvent]] = ...
        def getRelativeSuggestedWordEndIndex(self) -> int: ...
        def getRelativeSuggestedWordStartIndex(self) -> int: ...
        def getRelativeWordEndIndex(self) -> int: ...
        def getRelativeWordStartIndex(self) -> int: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(TextClassifierEvent.Builder[TextClassifierEvent.TextSelectionEvent.Builder]):
            def __init__(self, eventType: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextClassifierEvent.TextSelectionEvent: ...
            def setRelativeSuggestedWordEndIndex(self, relativeSuggestedWordEndIndex: int | java.jint | java.lang.Integer, /) -> TextClassifierEvent.TextSelectionEvent.Builder: ...
            def setRelativeSuggestedWordStartIndex(self, relativeSuggestedWordStartIndex: int | java.jint | java.lang.Integer, /) -> TextClassifierEvent.TextSelectionEvent.Builder: ...
            def setRelativeWordEndIndex(self, relativeWordEndIndex: int | java.jint | java.lang.Integer, /) -> TextClassifierEvent.TextSelectionEvent.Builder: ...
            def setRelativeWordStartIndex(self, relativeWordStartIndex: int | java.jint | java.lang.Integer, /) -> TextClassifierEvent.TextSelectionEvent.Builder: ...

    class TextLinkifyEvent(TextClassifierEvent, android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifierEvent.TextLinkifyEvent]] = ...

        class Builder(TextClassifierEvent.Builder[TextClassifierEvent.TextLinkifyEvent.Builder]):
            def __init__(self, eventType: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextClassifierEvent.TextLinkifyEvent: ...

    class LanguageDetectionEvent(TextClassifierEvent, android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifierEvent.LanguageDetectionEvent]] = ...

        class Builder(TextClassifierEvent.Builder[TextClassifierEvent.LanguageDetectionEvent.Builder]):
            def __init__(self, eventType: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextClassifierEvent.LanguageDetectionEvent: ...

    class ConversationActionsEvent(TextClassifierEvent, android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextClassifierEvent.ConversationActionsEvent]] = ...

        class Builder(TextClassifierEvent.Builder[TextClassifierEvent.ConversationActionsEvent.Builder]):
            def __init__(self, eventType: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextClassifierEvent.ConversationActionsEvent: ...
    class Builder(java.lang.Object, typing.Generic[_TextClassifierEvent__Builder__T]):
        def setActionIndices(self, *actionIndices: java.jint) -> _TextClassifierEvent__Builder__T: ...
        def setEntityTypes(self, *entityTypes: java.lang.String) -> _TextClassifierEvent__Builder__T: ...
        def setEventContext(self, eventContext: TextClassificationContext, /) -> _TextClassifierEvent__Builder__T: ...
        def setEventIndex(self, eventIndex: int | java.jint | java.lang.Integer, /) -> _TextClassifierEvent__Builder__T: ...
        def setExtras(self, extras: android.os.Bundle, /) -> _TextClassifierEvent__Builder__T: ...
        def setLocale(self, locale: android.icu.util.ULocale, /) -> _TextClassifierEvent__Builder__T: ...
        def setModelName(self, modelVersion: str | java.lang.String, /) -> _TextClassifierEvent__Builder__T: ...
        def setResultId(self, resultId: str | java.lang.String, /) -> _TextClassifierEvent__Builder__T: ...
        def setScores(self, *scores: java.jfloat) -> _TextClassifierEvent__Builder__T: ...

class TextLanguage(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextLanguage]] = ...
    def describeContents(self) -> int: ...
    def getConfidenceScore(self, locale: android.icu.util.ULocale, /) -> float: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getId(self) -> str | None: ...
    def getLocale(self, index: int | java.jint | java.lang.Integer, /) -> android.icu.util.ULocale: ...
    def getLocaleHypothesisCount(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Request(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextLanguage.Request]] = ...
        def describeContents(self) -> int: ...
        def getCallingPackageName(self) -> str: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getText(self) -> java.lang.CharSequence: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, text: java.lang.CharSequence, /) -> None: ...
            def build(self) -> TextLanguage.Request: ...
            def setExtras(self, bundle: android.os.Bundle, /) -> TextLanguage.Request.Builder: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> TextLanguage: ...
        def putLocale(self, locale: android.icu.util.ULocale, confidenceScore: float | java.jfloat | java.lang.Float, /) -> TextLanguage.Builder: ...
        def setExtras(self, bundle: android.os.Bundle, /) -> TextLanguage.Builder: ...
        def setId(self, id: str | java.lang.String, /) -> TextLanguage.Builder: ...

class TextLinks(android.os.Parcelable):
    APPLY_STRATEGY_IGNORE: typing.ClassVar[int] = ...
    APPLY_STRATEGY_REPLACE: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextLinks]] = ...
    STATUS_DIFFERENT_TEXT: typing.ClassVar[int] = ...
    STATUS_LINKS_APPLIED: typing.ClassVar[int] = ...
    STATUS_NO_LINKS_APPLIED: typing.ClassVar[int] = ...
    STATUS_NO_LINKS_FOUND: typing.ClassVar[int] = ...
    STATUS_UNSUPPORTED_CHARACTER: typing.ClassVar[int] = ...
    def apply(self, text: android.text.Spannable, applyStrategy: int | java.jint | java.lang.Integer, spanFactory: java.util.function.Function[TextLinks.TextLink, TextLinks.TextLinkSpan], /) -> int: ...
    def describeContents(self) -> int: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getLinks(self) -> java.util.Collection[TextLinks.TextLink]: ...
    def getText(self) -> java.lang.CharSequence: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class TextLinkSpan(android.text.style.ClickableSpan):
        def __init__(self, textLink: TextLinks.TextLink, /) -> None: ...
        def getTextLink(self) -> TextLinks.TextLink: ...
        def onClick(self, widget: android.view.View, /) -> None: ...

    class TextLink(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextLinks.TextLink]] = ...
        def describeContents(self) -> int: ...
        def getConfidenceScore(self, entityType: str | java.lang.String, /) -> float: ...
        def getEnd(self) -> int: ...
        def getEntity(self, index: int | java.jint | java.lang.Integer, /) -> str: ...
        def getEntityCount(self) -> int: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getStart(self) -> int: ...
        def toString(self) -> str: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Request(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextLinks.Request]] = ...
        def describeContents(self) -> int: ...
        def getCallingPackageName(self) -> str: ...
        def getDefaultLocales(self) -> android.os.LocaleList: ...
        def getEntityConfig(self) -> TextClassifier.EntityConfig: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getReferenceTime(self) -> java.time.ZonedDateTime: ...
        def getText(self) -> java.lang.CharSequence: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, text: java.lang.CharSequence, /) -> None: ...
            def build(self) -> TextLinks.Request: ...
            def setDefaultLocales(self, defaultLocales: android.os.LocaleList, /) -> TextLinks.Request.Builder: ...
            def setEntityConfig(self, entityConfig: TextClassifier.EntityConfig, /) -> TextLinks.Request.Builder: ...
            def setExtras(self, extras: android.os.Bundle, /) -> TextLinks.Request.Builder: ...
            def setReferenceTime(self, referenceTime: java.time.ZonedDateTime, /) -> TextLinks.Request.Builder: ...

    class Builder(java.lang.Object):
        def __init__(self, fullText: str | java.lang.String, /) -> None: ...
        @typing.overload
        def addLink(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, entityScores: java.util.Map[java.lang.String, java.lang.Float], /) -> TextLinks.Builder: ...
        @typing.overload
        def addLink(self, start: int | java.jint | java.lang.Integer, end: int | java.jint | java.lang.Integer, entityScores: java.util.Map[java.lang.String, java.lang.Float], extras: android.os.Bundle, /) -> TextLinks.Builder: ...
        def build(self) -> TextLinks: ...
        def clearTextLinks(self) -> TextLinks.Builder: ...
        def setExtras(self, extras: android.os.Bundle, /) -> TextLinks.Builder: ...

class TextSelection(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextSelection]] = ...
    def describeContents(self) -> int: ...
    def getConfidenceScore(self, entity: str | java.lang.String, /) -> float: ...
    def getEntity(self, index: int | java.jint | java.lang.Integer, /) -> str: ...
    def getEntityCount(self) -> int: ...
    def getExtras(self) -> android.os.Bundle: ...
    def getId(self) -> str | None: ...
    def getSelectionEndIndex(self) -> int: ...
    def getSelectionStartIndex(self) -> int: ...
    def getTextClassification(self) -> TextClassification | None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Request(android.os.Parcelable):
        CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextSelection.Request]] = ...
        def describeContents(self) -> int: ...
        def getCallingPackageName(self) -> str: ...
        def getDefaultLocales(self) -> android.os.LocaleList: ...
        def getEndIndex(self) -> int: ...
        def getExtras(self) -> android.os.Bundle: ...
        def getStartIndex(self) -> int: ...
        def getText(self) -> java.lang.CharSequence: ...
        def shouldIncludeTextClassification(self) -> bool: ...
        def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

        class Builder(java.lang.Object):
            def __init__(self, text: java.lang.CharSequence, startIndex: int | java.jint | java.lang.Integer, endIndex: int | java.jint | java.lang.Integer, /) -> None: ...
            def build(self) -> TextSelection.Request: ...
            def setDefaultLocales(self, defaultLocales: android.os.LocaleList, /) -> TextSelection.Request.Builder: ...
            def setExtras(self, extras: android.os.Bundle, /) -> TextSelection.Request.Builder: ...
            def setIncludeTextClassification(self, includeTextClassification: bool | java.jboolean | java.lang.Boolean, /) -> TextSelection.Request.Builder: ...

    class Builder(java.lang.Object):
        def __init__(self, startIndex: int | java.jint | java.lang.Integer, endIndex: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> TextSelection: ...
        def setEntityType(self, type: str | java.lang.String, confidenceScore: float | java.jfloat | java.lang.Float, /) -> TextSelection.Builder: ...
        def setExtras(self, extras: android.os.Bundle, /) -> TextSelection.Builder: ...
        def setId(self, id: str | java.lang.String, /) -> TextSelection.Builder: ...
        def setTextClassification(self, textClassification: TextClassification, /) -> TextSelection.Builder: ...
