import typing

import android.app
import android.app.assist
import android.app.slice
import android.content
import android.icu.text
import android.os
import android.service.assist.classification
import android.view.autofill
import android.view.inputmethod
import android.widget
import android.widget.inline
import java
import java.chaquopy
import java.lang
import java.util
import java.util.regex

class AutofillService(android.app.Service):
    EXTRA_FILL_RESPONSE: typing.ClassVar[str] = ...
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SERVICE_META_DATA: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def getFillEventHistory(self) -> FillEventHistory | None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onConnected(self) -> None: ...
    def onCreate(self) -> None: ...
    def onDisconnected(self) -> None: ...
    def onFillRequest(self, arg1: FillRequest, arg2: android.os.CancellationSignal, arg3: FillCallback, /) -> None: ...
    def onSaveRequest(self, arg1: SaveRequest, arg2: SaveCallback, /) -> None: ...
    def onSavedDatasetsInfoRequest(self, callback: SavedDatasetsInfoCallback, /) -> None: ...
    def onSessionDestroyed(self, history: FillEventHistory, /) -> None: ...

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

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> BatchUpdates: ...
        def transformChild(self, id: int | java.jint | java.lang.Integer, transformation: Transformation, /) -> BatchUpdates.Builder: ...
        def updateTemplate(self, updates: android.widget.RemoteViews, /) -> BatchUpdates.Builder: ...

class CharSequenceTransformation(Transformation, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CharSequenceTransformation]] = ...
    def describeContents(self) -> int: ...
    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, id: android.view.autofill.AutofillId, regex: java.util.regex.Pattern, subst: str | java.lang.String, /) -> None: ...
        def addField(self, id: android.view.autofill.AutofillId, regex: java.util.regex.Pattern, subst: str | java.lang.String, /) -> CharSequenceTransformation.Builder: ...
        def build(self) -> CharSequenceTransformation: ...

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

    class Builder(java.lang.Object):
        def __init__(self, parentPresentation: android.widget.RemoteViews, /) -> None: ...
        def addChild(self, id: int | java.jint | java.lang.Integer, transformation: Transformation, /) -> CustomDescription.Builder: ...
        def addOnClickAction(self, id: int | java.jint | java.lang.Integer, action: OnClickAction, /) -> CustomDescription.Builder: ...
        def batchUpdate(self, condition: Validator, updates: BatchUpdates, /) -> CustomDescription.Builder: ...
        def build(self) -> CustomDescription: ...

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

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, presentations: Presentations, /) -> None: ...
        @typing.overload
        def __init__(self, presentation: android.widget.RemoteViews, /) -> None: ...
        def build(self) -> Dataset: ...
        def setAuthentication(self, authentication: android.content.IntentSender, /) -> Dataset.Builder: ...
        @typing.overload
        def setField(self, id: android.view.autofill.AutofillId, field: Field, /) -> Dataset.Builder: ...
        @typing.overload
        def setField(self, hint: str | java.lang.String, field: Field, /) -> Dataset.Builder: ...
        def setFieldForAllHints(self, field: Field, /) -> Dataset.Builder: ...
        def setId(self, id: str | java.lang.String, /) -> Dataset.Builder: ...
        @typing.overload
        def setInlinePresentation(self, inlinePresentation: InlinePresentation, /) -> Dataset.Builder: ...
        @typing.overload
        def setInlinePresentation(self, inlinePresentation: InlinePresentation, inlineTooltipPresentation: InlinePresentation, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, presentation: android.widget.RemoteViews, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, filter: java.util.regex.Pattern, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, filter: java.util.regex.Pattern, presentation: android.widget.RemoteViews, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, inlineTooltipPresentation: InlinePresentation, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, filter: java.util.regex.Pattern, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, /) -> Dataset.Builder: ...
        @typing.overload
        def setValue(self, id: android.view.autofill.AutofillId, value: android.view.autofill.AutofillValue, filter: java.util.regex.Pattern, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, inlineTooltipPresentation: InlinePresentation, /) -> Dataset.Builder: ...

class DateTransformation(Transformation, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[DateTransformation]] = ...
    def __init__(self, id: android.view.autofill.AutofillId, dateFormat: android.icu.text.DateFormat, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class DateValueSanitizer(Sanitizer, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[DateValueSanitizer]] = ...
    def __init__(self, dateFormat: android.icu.text.DateFormat, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Field(java.lang.Object):
    def getFilter(self) -> java.util.regex.Pattern | None: ...
    def getPresentations(self) -> Presentations | None: ...
    def getValue(self) -> android.view.autofill.AutofillValue | None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> Field: ...
        def setFilter(self, value: java.util.regex.Pattern, /) -> Field.Builder: ...
        def setPresentations(self, value: Presentations, /) -> Field.Builder: ...
        def setValue(self, value: android.view.autofill.AutofillValue, /) -> Field.Builder: ...

class FieldClassification(java.lang.Object):
    def getMatches(self) -> java.util.List[FieldClassification.Match]: ...
    def toString(self) -> str: ...

    class Match(java.lang.Object):
        def getCategoryId(self) -> str: ...
        def getScore(self) -> float: ...
        def toString(self) -> str: ...

class FillCallback(java.lang.Object):
    def onFailure(self, message: java.lang.CharSequence, /) -> None: ...
    def onSuccess(self, response: FillResponse, /) -> None: ...

class FillContext(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FillContext]] = ...
    def describeContents(self) -> int: ...
    def getFocusedId(self) -> android.view.autofill.AutofillId: ...
    def getRequestId(self) -> int: ...
    def getStructure(self) -> android.app.assist.AssistStructure: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class FillEventHistory(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FillEventHistory]] = ...
    def describeContents(self) -> int: ...
    def getClientState(self) -> android.os.Bundle | None: ...
    def getEvents(self) -> java.util.List[FillEventHistory.Event] | None: ...
    def getSessionId(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Event(java.lang.Object):
        NO_SAVE_UI_REASON_DATASET_MATCH: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_FIELD_VALIDATION_FAILED: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_HAS_EMPTY_REQUIRED: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_NONE: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_NO_SAVE_INFO: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_NO_VALUE_CHANGED: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_USING_CREDMAN: typing.ClassVar[int] = ...
        NO_SAVE_UI_REASON_WITH_DELAY_SAVE_FLAG: typing.ClassVar[int] = ...
        TYPE_AUTHENTICATION_SELECTED: typing.ClassVar[int] = ...
        TYPE_CONTEXT_COMMITTED: typing.ClassVar[int] = ...
        TYPE_DATASETS_SHOWN: typing.ClassVar[int] = ...
        TYPE_DATASET_AUTHENTICATION_SELECTED: typing.ClassVar[int] = ...
        TYPE_DATASET_SELECTED: typing.ClassVar[int] = ...
        TYPE_SAVE_SHOWN: typing.ClassVar[int] = ...
        TYPE_VIEW_REQUESTED_AUTOFILL: typing.ClassVar[int] = ...
        UI_TYPE_CREDENTIAL_MANAGER: typing.ClassVar[int] = ...
        UI_TYPE_DIALOG: typing.ClassVar[int] = ...
        UI_TYPE_INLINE: typing.ClassVar[int] = ...
        UI_TYPE_MENU: typing.ClassVar[int] = ...
        UI_TYPE_UNKNOWN: typing.ClassVar[int] = ...
        def getChangedFields(self) -> java.util.Map[android.view.autofill.AutofillId, java.lang.String]: ...
        def getClientState(self) -> android.os.Bundle: ...
        def getDatasetId(self) -> str: ...
        def getFieldsClassification(self) -> java.util.Map[android.view.autofill.AutofillId, FieldClassification]: ...
        def getFocusedId(self) -> android.view.autofill.AutofillId: ...
        def getIgnoredDatasetIds(self) -> java.util.Set[java.lang.String]: ...
        def getManuallyEnteredField(self) -> java.util.Map[android.view.autofill.AutofillId, java.util.Set[java.lang.String]]: ...
        def getNoSaveUiReason(self) -> int: ...
        def getSelectedDatasetIds(self) -> java.util.Set[java.lang.String]: ...
        def getShownDatasetIds(self) -> java.util.Set[java.lang.String]: ...
        def getType(self) -> int: ...
        def getUiType(self) -> int: ...
        def toString(self) -> str: ...

class FillRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FillRequest]] = ...
    FLAG_COMPATIBILITY_MODE_REQUEST: typing.ClassVar[int] = ...
    FLAG_MANUAL_REQUEST: typing.ClassVar[int] = ...
    FLAG_SUPPORTS_FILL_DIALOG: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def getClientState(self) -> android.os.Bundle | None: ...
    def getDelayedFillIntentSender(self) -> android.content.IntentSender | None: ...
    def getFillContexts(self) -> java.util.List[FillContext]: ...
    def getFlags(self) -> int: ...
    def getHints(self) -> java.util.List[java.lang.String]: ...
    def getId(self) -> int: ...
    def getInlineSuggestionsRequest(self) -> android.view.inputmethod.InlineSuggestionsRequest | None: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class FillResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[FillResponse]] = ...
    FLAG_DELAY_FILL: typing.ClassVar[int] = ...
    FLAG_DISABLE_ACTIVITY_ONLY: typing.ClassVar[int] = ...
    FLAG_TRACK_CONTEXT_COMMITED: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    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) -> None: ...
        def addDataset(self, dataset: Dataset, /) -> FillResponse.Builder: ...
        def build(self) -> FillResponse: ...
        def disableAutofill(self, duration: int | java.jlong | java.lang.Long, /) -> FillResponse.Builder: ...
        @typing.overload
        def setAuthentication(self, ids: java.chaquopy.JavaArray[android.view.autofill.AutofillId], authentication: android.content.IntentSender, presentations: Presentations, /) -> FillResponse.Builder: ...
        @typing.overload
        def setAuthentication(self, ids: java.chaquopy.JavaArray[android.view.autofill.AutofillId], authentication: android.content.IntentSender, presentation: android.widget.RemoteViews, /) -> FillResponse.Builder: ...
        @typing.overload
        def setAuthentication(self, ids: java.chaquopy.JavaArray[android.view.autofill.AutofillId], authentication: android.content.IntentSender, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, /) -> FillResponse.Builder: ...
        @typing.overload
        def setAuthentication(self, ids: java.chaquopy.JavaArray[android.view.autofill.AutofillId], authentication: android.content.IntentSender, presentation: android.widget.RemoteViews, inlinePresentation: InlinePresentation, inlineTooltipPresentation: InlinePresentation, /) -> FillResponse.Builder: ...
        def setClientState(self, clientState: android.os.Bundle, /) -> FillResponse.Builder: ...
        def setDetectedFieldClassifications(self, fieldInfos: java.util.Set[android.service.assist.classification.FieldClassification], /) -> FillResponse.Builder: ...
        def setDialogHeader(self, header: android.widget.RemoteViews, /) -> FillResponse.Builder: ...
        def setFieldClassificationIds(self, *ids: android.view.autofill.AutofillId) -> FillResponse.Builder: ...
        def setFillDialogTriggerIds(self, *ids: android.view.autofill.AutofillId) -> FillResponse.Builder: ...
        def setFlags(self, flags: int | java.jint | java.lang.Integer, /) -> FillResponse.Builder: ...
        def setFooter(self, footer: android.widget.RemoteViews, /) -> FillResponse.Builder: ...
        def setHeader(self, header: android.widget.RemoteViews, /) -> FillResponse.Builder: ...
        def setIconResourceId(self, id: int | java.jint | java.lang.Integer, /) -> FillResponse.Builder: ...
        def setIgnoredIds(self, *ids: android.view.autofill.AutofillId) -> FillResponse.Builder: ...
        def setPresentationCancelIds(self, ids: java.chaquopy.JavaArrayJInt, /) -> FillResponse.Builder: ...
        def setSaveInfo(self, saveInfo: SaveInfo, /) -> FillResponse.Builder: ...
        def setServiceDisplayNameResourceId(self, id: int | java.jint | java.lang.Integer, /) -> FillResponse.Builder: ...
        def setShowFillDialogIcon(self, show: bool | java.jboolean | java.lang.Boolean, /) -> FillResponse.Builder: ...
        def setShowSaveDialogIcon(self, show: bool | java.jboolean | java.lang.Boolean, /) -> FillResponse.Builder: ...
        def setUserData(self, userData: UserData, /) -> FillResponse.Builder: ...

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

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self, id: android.view.autofill.AutofillId, regex: java.util.regex.Pattern, resId: int | java.jint | java.lang.Integer, /) -> None: ...
        @typing.overload
        def __init__(self, id: android.view.autofill.AutofillId, regex: java.util.regex.Pattern, resId: int | java.jint | java.lang.Integer, contentDescription: java.lang.CharSequence, /) -> None: ...
        @typing.overload
        def addOption(self, regex: java.util.regex.Pattern, resId: int | java.jint | java.lang.Integer, /) -> ImageTransformation.Builder: ...
        @typing.overload
        def addOption(self, regex: java.util.regex.Pattern, resId: int | java.jint | java.lang.Integer, contentDescription: java.lang.CharSequence, /) -> ImageTransformation.Builder: ...
        def build(self) -> ImageTransformation: ...

class InlinePresentation(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[InlinePresentation]] = ...
    def __init__(self, slice: android.app.slice.Slice, inlinePresentationSpec: android.widget.inline.InlinePresentationSpec, pinned: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @staticmethod
    def createTooltipPresentation(slice: android.app.slice.Slice, spec: android.widget.inline.InlinePresentationSpec, /) -> InlinePresentation: ...
    def describeContents(self) -> int: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getInlinePresentationSpec(self) -> android.widget.inline.InlinePresentationSpec: ...
    def getSlice(self) -> android.app.slice.Slice: ...
    def hashCode(self) -> int: ...
    def isPinned(self) -> bool: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class LuhnChecksumValidator(Validator, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[LuhnChecksumValidator]] = ...
    def __init__(self, *ids: android.view.autofill.AutofillId) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class OnClickAction(java.lang.Object): ...

class Presentations(java.lang.Object):
    def getDialogPresentation(self) -> android.widget.RemoteViews | None: ...
    def getInlinePresentation(self) -> InlinePresentation | None: ...
    def getInlineTooltipPresentation(self) -> InlinePresentation | None: ...
    def getMenuPresentation(self) -> android.widget.RemoteViews | None: ...

    class Builder(java.lang.Object):
        def __init__(self) -> None: ...
        def build(self) -> Presentations: ...
        def setDialogPresentation(self, value: android.widget.RemoteViews, /) -> Presentations.Builder: ...
        def setInlinePresentation(self, value: InlinePresentation, /) -> Presentations.Builder: ...
        def setInlineTooltipPresentation(self, value: InlinePresentation, /) -> Presentations.Builder: ...
        def setMenuPresentation(self, value: android.widget.RemoteViews, /) -> Presentations.Builder: ...

class RegexValidator(Validator, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[RegexValidator]] = ...
    def __init__(self, id: android.view.autofill.AutofillId, regex: java.util.regex.Pattern, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Sanitizer(java.lang.Object): ...

class SaveCallback(java.lang.Object):
    def onFailure(self, message: java.lang.CharSequence, /) -> None: ...
    @typing.overload
    def onSuccess(self) -> None: ...
    @typing.overload
    def onSuccess(self, intentSender: android.content.IntentSender, /) -> None: ...

class SaveInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SaveInfo]] = ...
    FLAG_DELAY_SAVE: typing.ClassVar[int] = ...
    FLAG_DONT_SAVE_ON_FINISH: typing.ClassVar[int] = ...
    FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE: typing.ClassVar[int] = ...
    NEGATIVE_BUTTON_STYLE_CANCEL: typing.ClassVar[int] = ...
    NEGATIVE_BUTTON_STYLE_NEVER: typing.ClassVar[int] = ...
    NEGATIVE_BUTTON_STYLE_REJECT: typing.ClassVar[int] = ...
    POSITIVE_BUTTON_STYLE_CONTINUE: typing.ClassVar[int] = ...
    POSITIVE_BUTTON_STYLE_SAVE: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_ADDRESS: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_CREDIT_CARD: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_DEBIT_CARD: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_EMAIL_ADDRESS: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_GENERIC: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_GENERIC_CARD: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_PASSWORD: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_PAYMENT_CARD: typing.ClassVar[int] = ...
    SAVE_DATA_TYPE_USERNAME: typing.ClassVar[int] = ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self, type: int | java.jint | java.lang.Integer, /) -> None: ...
        @typing.overload
        def __init__(self, type: int | java.jint | java.lang.Integer, requiredIds: java.chaquopy.JavaArray[android.view.autofill.AutofillId], /) -> None: ...
        def addSanitizer(self, sanitizer: Sanitizer, /, *ids: android.view.autofill.AutofillId) -> SaveInfo.Builder: ...
        def build(self) -> SaveInfo: ...
        def setCustomDescription(self, customDescription: CustomDescription, /) -> SaveInfo.Builder: ...
        def setDescription(self, description: java.lang.CharSequence, /) -> SaveInfo.Builder: ...
        def setFlags(self, flags: int | java.jint | java.lang.Integer, /) -> SaveInfo.Builder: ...
        def setNegativeAction(self, style: int | java.jint | java.lang.Integer, listener: android.content.IntentSender, /) -> SaveInfo.Builder: ...
        def setOptionalIds(self, ids: java.chaquopy.JavaArray[android.view.autofill.AutofillId], /) -> SaveInfo.Builder: ...
        def setPositiveAction(self, style: int | java.jint | java.lang.Integer, /) -> SaveInfo.Builder: ...
        def setTriggerId(self, id: android.view.autofill.AutofillId, /) -> SaveInfo.Builder: ...
        def setValidator(self, validator: Validator, /) -> SaveInfo.Builder: ...

class SaveRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[SaveRequest]] = ...
    def describeContents(self) -> int: ...
    def getClientState(self) -> android.os.Bundle | None: ...
    def getDatasetIds(self) -> java.util.List[java.lang.String] | None: ...
    def getFillContexts(self) -> java.util.List[FillContext]: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class SavedDatasetsInfo(java.lang.Object):
    TYPE_OTHER: typing.ClassVar[str] = ...
    TYPE_PASSWORDS: typing.ClassVar[str] = ...
    def __init__(self, type: str | java.lang.String, count: int | java.jint | java.lang.Integer, /) -> None: ...
    def equals(self, o: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCount(self) -> int: ...
    def getType(self) -> str: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class SavedDatasetsInfoCallback(java.lang.Object):
    ERROR_NEEDS_USER_ACTION: typing.ClassVar[int] = ...
    ERROR_OTHER: typing.ClassVar[int] = ...
    ERROR_UNSUPPORTED: typing.ClassVar[int] = ...
    def onError(self, arg1: int | java.jint | java.lang.Integer, /) -> None: ...
    def onSuccess(self, arg1: java.util.Set[SavedDatasetsInfo], /) -> None: ...

class TextValueSanitizer(Sanitizer, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[TextValueSanitizer]] = ...
    def __init__(self, regex: java.util.regex.Pattern, subst: str | java.lang.String, /) -> None: ...
    def describeContents(self) -> int: ...
    def toString(self) -> str: ...
    def writeToParcel(self, parcel: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class Transformation(java.lang.Object): ...

class UserData(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[UserData]] = ...
    def describeContents(self) -> int: ...
    def getFieldClassificationAlgorithm(self) -> str | None: ...
    def getFieldClassificationAlgorithmForCategory(self, categoryId: str | java.lang.String, /) -> str | None: ...
    def getId(self) -> str: ...
    @staticmethod
    def getMaxCategoryCount() -> int: ...
    @staticmethod
    def getMaxFieldClassificationIdsSize() -> int: ...
    @staticmethod
    def getMaxUserDataSize() -> int: ...
    @staticmethod
    def getMaxValueLength() -> int: ...
    @staticmethod
    def getMinValueLength() -> int: ...
    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, id: str | java.lang.String, value: str | java.lang.String, categoryId: str | java.lang.String, /) -> None: ...
        def add(self, value: str | java.lang.String, categoryId: str | java.lang.String, /) -> UserData.Builder: ...
        def build(self) -> UserData: ...
        def setFieldClassificationAlgorithm(self, name: str | java.lang.String, args: android.os.Bundle, /) -> UserData.Builder: ...
        def setFieldClassificationAlgorithmForCategory(self, categoryId: str | java.lang.String, name: str | java.lang.String, args: android.os.Bundle, /) -> UserData.Builder: ...

class Validator(java.lang.Object): ...

class Validators(java.lang.Object):
    @staticmethod
    def and_(*validators: Validator) -> Validator: ...
    @staticmethod
    def not_(validator: Validator, /) -> Validator: ...
    @staticmethod
    def or_(*validators: Validator) -> Validator: ...

class VisibilitySetterAction(OnClickAction, android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[VisibilitySetterAction]] = ...
    def describeContents(self) -> int: ...
    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, id: int | java.jint | java.lang.Integer, visibility: int | java.jint | java.lang.Integer, /) -> None: ...
        def build(self) -> VisibilitySetterAction: ...
        def setVisibility(self, id: int | java.jint | java.lang.Integer, visibility: int | java.jint | java.lang.Integer, /) -> VisibilitySetterAction.Builder: ...
