// Path: valifi/src/main/java/com/mlykotom/valifi/exceptions/ValiFiException.java
// public class ValiFiException extends RuntimeException {
// 	public ValiFiException() {
// 	}
// 
// 	public ValiFiException(String message) {
// 		super(message);
// 	}
// }
// 
// Path: valifi/src/main/java/com/mlykotom/valifi/exceptions/ValiFiValidatorException.java
// public class ValiFiValidatorException extends ValiFiException {
// 	public ValiFiValidatorException() {}
// 
// 	public ValiFiValidatorException(String message) {
// 		super(message);
// 	}
// }


import android.annotation.SuppressLint;
import android.content.Context;
import com.mlykotom.valifi.exceptions.ValiFiException;
import com.mlykotom.valifi.exceptions.ValiFiValidatorException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.StringRes;
import static androidx.annotation.RestrictTo.Scope.TESTS;
		}
	}

	/**
	 * @return installed known card types (MASTERCARD, VISA and AMERICAN_EXPRESS as default)
	 */
	@NonNull
	public static Set<ValiFiCardType> getCreditCardTypes() {
		return getInstance().mParameters.mKnownCardTypes;
	}

	static int getErrorRes(@Builder.ValiFiErrorResource int field) {
		return getInstance().mParameters.mErrorResources[field];
	}

	@NonNull
	static ValiFieldBase.PropertyValidator<String> getValidator(@Builder.ValiFiPattern int field) {
		return getInstance().mParameters.mValidators[field];
	}

	static long getErrorDelay() {
		return getInstance().mParameters.mErrorDelay;
	}

	static long getAsyncValidationDelay() {
		return getInstance().mParameters.mAsyncValidationDelay;
	}

	static ValiFi getInstance() {
		if (ourInstance == null) {
// Path: valifi/src/main/java/com/mlykotom/valifi/exceptions/ValiFiException.java
// public class ValiFiException extends RuntimeException {
// 	public ValiFiException() {
// 	}
// 
// 	public ValiFiException(String message) {
// 		super(message);
// 	}
// }
// 
// Path: valifi/src/main/java/com/mlykotom/valifi/exceptions/ValiFiValidatorException.java
// public class ValiFiValidatorException extends ValiFiException {
// 	public ValiFiValidatorException() {}
// 
// 	public ValiFiValidatorException(String message) {
// 		super(message);
// 	}
// }


// Path: valifi/src/main/java/com/mlykotom/valifi/ValiFi.java
import android.annotation.SuppressLint;
import android.content.Context;
import com.mlykotom.valifi.exceptions.ValiFiException;
import com.mlykotom.valifi.exceptions.ValiFiValidatorException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.StringRes;
import static androidx.annotation.RestrictTo.Scope.TESTS;

		}
	}

	/**
	 * @return installed known card types (MASTERCARD, VISA and AMERICAN_EXPRESS as default)
	 */
	@NonNull
	public static Set<ValiFiCardType> getCreditCardTypes() {
		return getInstance().mParameters.mKnownCardTypes;
	}

	static int getErrorRes(@Builder.ValiFiErrorResource int field) {
		return getInstance().mParameters.mErrorResources[field];
	}

	@NonNull
	static ValiFieldBase.PropertyValidator<String> getValidator(@Builder.ValiFiPattern int field) {
		return getInstance().mParameters.mValidators[field];
	}

	static long getErrorDelay() {
		return getInstance().mParameters.mErrorDelay;
	}

	static long getAsyncValidationDelay() {
		return getInstance().mParameters.mAsyncValidationDelay;
	}

	static ValiFi getInstance() {
		if (ourInstance == null) {
			throw new ValiFiException("ValiFi must be installed in Application.onCreate()!");