import typing

import android.app
import android.app.slice
import android.content
import android.content.pm
import android.credentials
import android.os
import java
import java.lang
import java.util

class Action(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[Action]] = ...
    def __init__(self, slice: android.app.slice.Slice, /) -> None: ...
    def describeContents(self) -> int: ...
    def getSlice(self) -> android.app.slice.Slice: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class BeginCreateCredentialRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BeginCreateCredentialRequest]] = ...
    @typing.overload
    def __init__(self, type: str | java.lang.String, data: android.os.Bundle, /) -> None: ...
    @typing.overload
    def __init__(self, type: str | java.lang.String, data: android.os.Bundle, callingAppInfo: CallingAppInfo, /) -> None: ...
    def describeContents(self) -> int: ...
    def getCallingAppInfo(self) -> CallingAppInfo | None: ...
    def getData(self) -> android.os.Bundle: ...
    def getType(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class BeginCreateCredentialResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BeginCreateCredentialResponse]] = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def getCreateEntries(self) -> java.util.List[CreateEntry]: ...
    def getRemoteCreateEntry(self) -> RemoteEntry | None: ...
    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 addCreateEntry(self, createEntry: CreateEntry, /) -> BeginCreateCredentialResponse.Builder: ...
        def build(self) -> BeginCreateCredentialResponse: ...
        def setCreateEntries(self, createEntries: java.util.List[CreateEntry], /) -> BeginCreateCredentialResponse.Builder: ...
        def setRemoteCreateEntry(self, remoteCreateEntry: RemoteEntry, /) -> BeginCreateCredentialResponse.Builder: ...

class BeginGetCredentialOption(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BeginGetCredentialOption]] = ...
    def __init__(self, id: str | java.lang.String, type: str | java.lang.String, candidateQueryData: android.os.Bundle, /) -> None: ...
    def describeContents(self) -> int: ...
    def getCandidateQueryData(self) -> android.os.Bundle: ...
    def getId(self) -> str: ...
    def getType(self) -> str: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class BeginGetCredentialRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BeginGetCredentialRequest]] = ...
    def describeContents(self) -> int: ...
    def getBeginGetCredentialOptions(self) -> java.util.List[BeginGetCredentialOption]: ...
    def getCallingAppInfo(self) -> CallingAppInfo | None: ...
    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 addBeginGetCredentialOption(self, beginGetCredentialOption: BeginGetCredentialOption, /) -> BeginGetCredentialRequest.Builder: ...
        def build(self) -> BeginGetCredentialRequest: ...
        def setBeginGetCredentialOptions(self, getBeginCredentialOptions: java.util.List[BeginGetCredentialOption], /) -> BeginGetCredentialRequest.Builder: ...
        def setCallingAppInfo(self, callingAppInfo: CallingAppInfo, /) -> BeginGetCredentialRequest.Builder: ...

class BeginGetCredentialResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[BeginGetCredentialResponse]] = ...
    def __init__(self) -> None: ...
    def describeContents(self) -> int: ...
    def getActions(self) -> java.util.List[Action]: ...
    def getAuthenticationActions(self) -> java.util.List[Action]: ...
    def getCredentialEntries(self) -> java.util.List[CredentialEntry]: ...
    def getRemoteCredentialEntry(self) -> RemoteEntry | None: ...
    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 addAction(self, action: Action, /) -> BeginGetCredentialResponse.Builder: ...
        def addAuthenticationAction(self, authenticationAction: Action, /) -> BeginGetCredentialResponse.Builder: ...
        def addCredentialEntry(self, credentialEntry: CredentialEntry, /) -> BeginGetCredentialResponse.Builder: ...
        def build(self) -> BeginGetCredentialResponse: ...
        def setActions(self, actions: java.util.List[Action], /) -> BeginGetCredentialResponse.Builder: ...
        def setAuthenticationActions(self, authenticationActions: java.util.List[Action], /) -> BeginGetCredentialResponse.Builder: ...
        def setCredentialEntries(self, credentialEntries: java.util.List[CredentialEntry], /) -> BeginGetCredentialResponse.Builder: ...
        def setRemoteCredentialEntry(self, remoteCredentialEntry: RemoteEntry, /) -> BeginGetCredentialResponse.Builder: ...

class CallingAppInfo(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CallingAppInfo]] = ...
    @typing.overload
    def __init__(self, packageName: str | java.lang.String, signingInfo: android.content.pm.SigningInfo, /) -> None: ...
    @typing.overload
    def __init__(self, packageName: str | java.lang.String, signingInfo: android.content.pm.SigningInfo, origin: str | java.lang.String, /) -> None: ...
    def describeContents(self) -> int: ...
    def getOrigin(self) -> str | None: ...
    def getPackageName(self) -> str: ...
    def getSigningInfo(self) -> android.content.pm.SigningInfo: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class ClearCredentialStateRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[ClearCredentialStateRequest]] = ...
    def __init__(self, callingAppInfo: CallingAppInfo, data: android.os.Bundle, /) -> None: ...
    def describeContents(self) -> int: ...
    def getCallingAppInfo(self) -> CallingAppInfo: ...
    def getData(self) -> android.os.Bundle: ...
    def toString(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class CreateCredentialRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CreateCredentialRequest]] = ...
    def __init__(self, callingAppInfo: CallingAppInfo, type: str | java.lang.String, data: android.os.Bundle, /) -> None: ...
    def describeContents(self) -> int: ...
    def getCallingAppInfo(self) -> CallingAppInfo: ...
    def getData(self) -> android.os.Bundle: ...
    def getType(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class CreateEntry(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CreateEntry]] = ...
    def __init__(self, slice: android.app.slice.Slice, /) -> None: ...
    def describeContents(self) -> int: ...
    def getSlice(self) -> android.app.slice.Slice: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class CredentialEntry(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[CredentialEntry]] = ...
    @typing.overload
    def __init__(self, beginGetCredentialOption: BeginGetCredentialOption, slice: android.app.slice.Slice, /) -> None: ...
    @typing.overload
    def __init__(self, type: str | java.lang.String, slice: android.app.slice.Slice, /) -> None: ...
    @typing.overload
    def __init__(self, beginGetCredentialOptionId: str | java.lang.String, type: str | java.lang.String, slice: android.app.slice.Slice, /) -> None: ...
    def describeContents(self) -> int: ...
    def getBeginGetCredentialOptionId(self) -> str: ...
    def getSlice(self) -> android.app.slice.Slice: ...
    def getType(self) -> str: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class CredentialProviderService(android.app.Service):
    EXTRA_BEGIN_GET_CREDENTIAL_REQUEST: typing.ClassVar[str] = ...
    EXTRA_BEGIN_GET_CREDENTIAL_RESPONSE: typing.ClassVar[str] = ...
    EXTRA_CREATE_CREDENTIAL_EXCEPTION: typing.ClassVar[str] = ...
    EXTRA_CREATE_CREDENTIAL_REQUEST: typing.ClassVar[str] = ...
    EXTRA_CREATE_CREDENTIAL_RESPONSE: typing.ClassVar[str] = ...
    EXTRA_GET_CREDENTIAL_EXCEPTION: typing.ClassVar[str] = ...
    EXTRA_GET_CREDENTIAL_REQUEST: typing.ClassVar[str] = ...
    EXTRA_GET_CREDENTIAL_RESPONSE: typing.ClassVar[str] = ...
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SERVICE_META_DATA: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def onBeginCreateCredential(self, arg1: BeginCreateCredentialRequest, arg2: android.os.CancellationSignal, arg3: android.os.OutcomeReceiver[BeginCreateCredentialResponse, android.credentials.CreateCredentialException], /) -> None: ...
    def onBeginGetCredential(self, arg1: BeginGetCredentialRequest, arg2: android.os.CancellationSignal, arg3: android.os.OutcomeReceiver[BeginGetCredentialResponse, android.credentials.GetCredentialException], /) -> None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder: ...
    def onClearCredentialState(self, arg1: ClearCredentialStateRequest, arg2: android.os.CancellationSignal, arg3: android.os.OutcomeReceiver[java.lang.Void, android.credentials.ClearCredentialStateException], /) -> None: ...
    def onCreate(self) -> None: ...

class GetCredentialRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[GetCredentialRequest]] = ...
    def __init__(self, callingAppInfo: CallingAppInfo, credentialOptions: java.util.List[android.credentials.CredentialOption], /) -> None: ...
    def describeContents(self) -> int: ...
    def getCallingAppInfo(self) -> CallingAppInfo: ...
    def getCredentialOptions(self) -> java.util.List[android.credentials.CredentialOption]: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class RemoteEntry(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[RemoteEntry]] = ...
    def __init__(self, slice: android.app.slice.Slice, /) -> None: ...
    def describeContents(self) -> int: ...
    def getSlice(self) -> android.app.slice.Slice: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...
