export enum MFEnvironment {
  TEST = 'TEST',
  LIVE = 'LIVE',
}

export enum MFLanguage {
  ARABIC = 'ar',
  ENGLISH = 'en',
}

export enum MFCurrencyISO {
  KUWAIT_KWD = 'KWD',
  SAUDIARABIA_SAR = 'SAR',
  BAHRAIN_BHD = 'BHD',
  UAE_AED = 'AED',
  QATAR_QAR = 'QAR',
  OMAN_MOR = 'OMR',
  JORDAN_JOD = 'JOD',
  UNITEDSTATES_USD = 'USD',
  EURO_EUR = 'EUR',
}

export enum MFCountry {
  KUWAIT = 'KWT',
  SAUDIARABIA = 'SAU',
  BAHRAIN = 'BHR',
  UNITEDARABEMIRATES = 'ARE',
  QATAR = 'QAT',
  OMAN = 'OMN',
  JORDAN = 'JOD',
  EGYPT = 'EGY',
}

export enum MFMobileCountryCodeISO {
  KUWAIT = '+965',
  SAUDIARABIA = '+966',
  BAHRAIN = '+973',
  UAE = '+971',
  QATAR = '+974',
  OMAN = '+968',
  JORDAN = '+962',
  EGYPT = '+20',
}

export enum MFNotificationOption {
  ALL = 'all',
  EMAIL = 'eml',
  SMS = 'sms',
  LINK = 'lnk',
}

export enum MFKeyType {
  INVOICEID = 'InvoiceId',
  PAYMENTID = 'PaymentId',
}

export enum MFFontWeight {
  Thin = 'Thin',
  ExtraLight = 'ExtraLight',
  Light = 'Light',
  Normal = 'Normal',
  Medium = 'Medium',
  SemiBold = 'SemiBold',
  Bold = 'Bold',
  ExtraBold = 'ExtraBold',
  Heavy = 'Heavy',
}

export enum MFFontFamily {
  SansSerif = 'SansSerif',
  Arial = 'Arial',
  TimesNewRoman = 'TimesNewRoman',
  Helvetica = 'Helvetica',
  Tahoma = 'Tahoma',
  Verdana = 'Verdana',
  Monaco = 'Monaco',
  Georgia = 'Georgia',
  CourierNew = 'CourierNew',
  Garamond = 'Garamond',
  TrebuchetMS = 'TrebuchetMS',
  Rubik = 'Rubik',
  NotoKufiArabic = 'Noto Kufi Arabic',
}

export enum MFRecurringType {
  DAILY = 'Daily',
  WEEKLY = 'Weekly',
  MONTHLY = 'Monthly',
  CUSTOM = 'Custom',
}

export enum MFTokenType {
  MFtoken = 'mftoken',
  GooglePay = 'googlepay',
}

//#region V3

/**
 * Session mode for the V3 embedded card flow.
 * - COMPLETE_PAYMENT: the widget completes the whole payment (incl. 3DS) and the
 *   result resolves to a final payment status.
 * - COLLECT_DETAILS: the widget tokenizes the card only; you charge it on your backend.
 */
export enum MFV3PaymentMode {
  COMPLETE_PAYMENT = 'COMPLETE_PAYMENT',
  COLLECT_DETAILS = 'COLLECT_DETAILS',
}

/** Widget lifecycle events emitted by the V3 card view (via onWidgetEvent). */
export enum MFV3WidgetEventName {
  VIEW_READY = 'VIEW_READY',
  CARD_IDENTIFIED = 'CARD_IDENTIFIED',
  PAYMENT_STARTED = 'PAYMENT_STARTED',
  PAYMENT_COMPLETED = 'PAYMENT_COMPLETED',
  SESSION_STARTED = 'SESSION_STARTED',
  SESSION_CANCELED = 'SESSION_CANCELED',
  THREE_DS_CHALLENGE_INITIATED = '3DS_CHALLENGE_INITIATED',
  OTP_REQUESTED = 'OTP_REQUESTED',
}

//#endregion
