import typing

import android.app
import android.content
import android.graphics.drawable
import android.location
import android.os
import java
import java.lang
import java.util

class GetWalletCardsCallback(java.lang.Object):
    def onFailure(self, arg1: GetWalletCardsError, /) -> None: ...
    def onSuccess(self, arg1: GetWalletCardsResponse, /) -> None: ...

class GetWalletCardsError(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[GetWalletCardsError]] = ...
    def __init__(self, icon: android.graphics.drawable.Icon, message: java.lang.CharSequence, /) -> None: ...
    def describeContents(self) -> int: ...
    def getIcon(self) -> android.graphics.drawable.Icon | None: ...
    def getMessage(self) -> java.lang.CharSequence | None: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class GetWalletCardsRequest(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[GetWalletCardsRequest]] = ...
    def __init__(self, cardWidthPx: int | java.jint | java.lang.Integer, cardHeightPx: int | java.jint | java.lang.Integer, iconSizePx: int | java.jint | java.lang.Integer, maxCards: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def getCardHeightPx(self) -> int: ...
    def getCardWidthPx(self) -> int: ...
    def getIconSizePx(self) -> int: ...
    def getMaxCards(self) -> int: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class GetWalletCardsResponse(android.os.Parcelable):
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[GetWalletCardsResponse]] = ...
    def __init__(self, walletCards: java.util.List[WalletCard], selectedIndex: int | java.jint | java.lang.Integer, /) -> None: ...
    def describeContents(self) -> int: ...
    def getSelectedIndex(self) -> int: ...
    def getWalletCards(self) -> java.util.List[WalletCard]: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

class QuickAccessWalletService(android.app.Service):
    ACTION_VIEW_WALLET: typing.ClassVar[str] = ...
    ACTION_VIEW_WALLET_SETTINGS: typing.ClassVar[str] = ...
    SERVICE_INTERFACE: typing.ClassVar[str] = ...
    SERVICE_META_DATA: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def getGestureTargetActivityPendingIntent(self) -> android.app.PendingIntent: ...
    def getTargetActivityPendingIntent(self) -> android.app.PendingIntent | None: ...
    def onBind(self, intent: android.content.Intent, /) -> android.os.IBinder | None: ...
    def onWalletCardSelected(self, arg1: SelectWalletCardRequest, /) -> None: ...
    def onWalletCardsRequested(self, arg1: GetWalletCardsRequest, arg2: GetWalletCardsCallback, /) -> None: ...
    def onWalletDismissed(self) -> None: ...
    def sendWalletServiceEvent(self, serviceEvent: WalletServiceEvent, /) -> None: ...

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

class WalletCard(android.os.Parcelable):
    CARD_TYPE_NON_PAYMENT: typing.ClassVar[int] = ...
    CARD_TYPE_PAYMENT: typing.ClassVar[int] = ...
    CARD_TYPE_UNKNOWN: typing.ClassVar[int] = ...
    CREATOR: typing.ClassVar[android.os.Parcelable.Creator[WalletCard]] = ...
    def describeContents(self) -> int: ...
    def getCardIcon(self) -> android.graphics.drawable.Icon | None: ...
    def getCardId(self) -> str: ...
    def getCardImage(self) -> android.graphics.drawable.Icon: ...
    def getCardLabel(self) -> java.lang.CharSequence | None: ...
    def getCardLocations(self) -> java.util.List[android.location.Location]: ...
    def getCardType(self) -> int: ...
    def getContentDescription(self) -> java.lang.CharSequence: ...
    def getNonPaymentCardSecondaryImage(self) -> android.graphics.drawable.Icon | None: ...
    def getPendingIntent(self) -> android.app.PendingIntent: ...
    def writeToParcel(self, dest: android.os.Parcel, flags: int | java.jint | java.lang.Integer, /) -> None: ...

    class Builder(java.lang.Object):
        @typing.overload
        def __init__(self, cardId: str | java.lang.String, cardImage: android.graphics.drawable.Icon, contentDescription: java.lang.CharSequence, pendingIntent: android.app.PendingIntent, /) -> None: ...
        @typing.overload
        def __init__(self, cardId: str | java.lang.String, cardType: int | java.jint | java.lang.Integer, cardImage: android.graphics.drawable.Icon, contentDescription: java.lang.CharSequence, pendingIntent: android.app.PendingIntent, /) -> None: ...
        def build(self) -> WalletCard: ...
        def setCardIcon(self, cardIcon: android.graphics.drawable.Icon, /) -> WalletCard.Builder: ...
        def setCardLabel(self, cardLabel: java.lang.CharSequence, /) -> WalletCard.Builder: ...
        def setCardLocations(self, cardLocations: java.util.List[android.location.Location], /) -> WalletCard.Builder: ...
        def setNonPaymentCardSecondaryImage(self, nonPaymentCardSecondaryImage: android.graphics.drawable.Icon, /) -> WalletCard.Builder: ...

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