package com.google.android.gms.tapandpay.internal;

import com.google.android.gms.common.api.Status;
import com.google.android.gms.tapandpay.firstparty.GetActiveAccountResponse;
import com.google.android.gms.tapandpay.firstparty.GetAllCardsResponse;
import com.google.android.gms.tapandpay.firstparty.RefreshSeCardsResponse;
import com.google.android.gms.tapandpay.issuer.TokenStatus;
import com.google.android.gms.tapandpay.issuer.TokenInfo;

interface ITapAndPayServiceCallbacks {
    void onTokenSelected(in Status status) = 1;
    void onHandleStatusPendingIntent(in Status status, in Bundle data) = 2;
    void onAllCardsRetrieved(in Status status, in GetAllCardsResponse response) = 3;
    void onTokenDeleted(in Status status) = 4;
    void onActiveAccountSet(in Status status) = 5;
    void onActiveAccountDetermined(in Status status, in GetActiveAccountResponse response) = 7;
    void onStatus(in Status status) = 8;
    void onDataChanged() = 9;
    void onDeviceUnlockStatusDetermined(in Status status, boolean isDeviceUnlockedForPayment) = 10;
    void onTapSent(in Status status) = 11;
    void onReceivesTransactionNotificationsRetrieved(in Status status, boolean receivesTransactionNotifications) = 12;
    void onReceivesTransactionNotificationsSet(in Status status) = 13;
//    void onActiveCardsForAccountRetrieved(in Status status, in GetActiveCardsForAccountResponse response) = 14;
//    void onInAppPaymentCredentialRetrieved(in Status status, in RetrieveInAppPaymentCredentialResponse response) = 16;
    void onAnalyticsContextRetrieved(in Status status, String analyticsContext) = 17;
    void onActiveWalletIdRetrieved(in Status status, String walletId) = 18;
    void onTokenStatusRetrieved(in Status status, in TokenStatus tokenStatus) = 19;
    void onDeviceUnlockStatusDeterminedForInAppPayment(in Status status, boolean isDeviceUnlockedForInAppPayment) = 20;
    void onIncreaseInAppTransaction(in Status status) = 21;
    void onStableHardwareIdRetrieved(in Status status, String stableHardwareId) = 22;
    void onEnvironmentRetrieved(in Status status, String env) = 23;
    void onEnablePayOnWear(in Status status) = 24;
    void onIsPayPalAvailableResponse(in Status status, boolean IsPayPalAvailable) = 25;
//    void onSecurityPraramsDetermined(in Status status, in GetSecurityParamsResponse response) = 26;
//    void onNotificationSettingsRetrieved(in Status status, in GetNotificationSettingsResponse response) = 27;
    void onNotificationSettingsSet(in Status status) = 28;
//    void onAvailableOtherPaymentMethodsRetrieved(in Status status, in GetAvailableOtherPaymentMethodsResponse response) = 29;
//    void onActiveTokensForAccountRetrieved(in Status status, in GetActiveTokensForAccountResponse response) = 30;
//    void onSeChipTransactionsRetrieved(in Status status, in GetSeChipTransactionsResponse response) = 34;
//    void onReserveResourceResponse(in Status status, in ReserveResourceResponse response) = 35;
    void onReleaseResourceResponse(in Status status) = 36;
    void onSelectedTokenDisabled(in Status status) = 37;
//    void onFelicaTosAcceptanceRetrieved(in Status status, in GetFelicaTosAcceptanceResponse response) = 38;
    void onFelicaTosAcceptanceSet(in Status status) = 39;
    void onRefreshSeCardsResponse(in Status status, in RefreshSeCardsResponse response) = 40;
//    void onGlobalActionCardsRetrieved(in Status status, in GetGlobalActionCardsResponse response) = 41;
    void onLinkingTokenRetrieved(in Status status, String linkingToken) = 42;
    void onPaymentCardsBlocked(in Status status) = 43;
    void onPaymentCardsUnblocked(in Status status) = 44;
//    void onLastAttestationResultRetrieved(in Status status, in GetLastAttestationResultResponse response) = 45;
//    void onQuickAccessWalletConfig(in Status status, in QuickAccessWalletConfig config) = 46;
//    void onContactlessSetupStatusRetrieved(in Status status, in GetContactlessSetupStatusResponse response) = 47;
    void onIsTokenizedRetrieved(in Status status, boolean isTokenized) = 48;
    void onListTokensRetrieved(in Status status, in TokenInfo[] tokens) = 49;
//    void onContactlessEligibilityRetrieved(in Status status, in CheckContactlessEligibilityResponse response) = 50;
    void onProto(in Status status, in byte[] proto) = 51;
//    void onPushProvisionSessionContextRetrieved(in Status status, in PushProvisionSessionContext context) = 52;
    void onTokenPanRetrieved(in Status status, String tokenPan) = 53;
}
