export enum UNVPErrorType {
  EmptyAppId = 'EmptyAppId',
  DeviceAuthenticationFailed = 'DeviceAuthenticationFailed',
  DeviceRootDetection = 'DeviceRootDetection',
  HookDetection = 'HookDetection',
  PlayIntegrityCheckFailed = 'PlayIntegrityCheckFailed',
  EmptyEncryptedPayload = 'EmptyEncryptedPayload',
  NoWallets = 'NoWallets',
  InvalidCardId = 'InvalidCardId',
  ProvisioningNotAllowed = 'ProvisioningNotAllowed',
  CancelledByUser = 'CancelledByUser',
  GoogleWalletCreationFailed = 'GoogleWalletCreationFailed',
  UnknownErrorOccurred = 'UnknownErrorOccurred',
  WalletProvisioningInconclusive = 'WalletProvisioningInconclusive',
  WalletProvisioningError = 'WalletProvisioningError',
  NetworkFailure = 'NetworkFailure',
  SessionExpired = 'SessionExpired',
  InvalidInfo = 'InvalidInfo',
  PayloadDecryptionFailed = 'PayloadDecryptionFailed',
  ApiError = 'ApiError',
  InvalidNonce = 'InvalidNonce',
  SDKLockout = 'SDKLockout',
  NoBrowserFound = 'NoBrowserFound',
  TLCMFeatureNotSupported = 'TLCMFeatureNotSupported',
  TLCMUnsupportedWallet = 'TLCMUnsupportedWallet',
  TLCMDetailsNotFoundInPaySdk = 'TLCMDetailsNotFoundInPaySdk',
  TLCMTokenStatusExists = 'TLCMTokenStatusExists',
  TLCMInvalidOperationInput = 'TLCMInvalidOperationInput',
  TLCMInvalidRequest = 'TLCMInvalidRequest',
  TLCMUpdateStatusNotAllowed = 'TLCMUpdateStatusNotAllowed',
  TLCMTokenNotFound = 'TLCMTokenNotFound',
}

export interface UNVPError {
  code: string;
  description: string;
  type: UNVPErrorType;
  correlationId: string;
}

export type UNNativePromiseReject = {
  code: string;
  message: string;
}

export interface UNMobileWalletPayload {
  data: {
    attributes: {
      payload: string;
    };
  };
}
