-keep class io.nearpay.sdk.** { *; }

-keepclasseswithmembers public class io.nearpay.sdk.* {
   public *;
}

-keep public class io.nearpay.sdk.data.models.**.**
-keep public class io.nearpay.sdk.data.models.NameField
-keep public class io.nearpay.sdk.data.models.NameField.*
-keep public class io.nearpay.sdk.data.models.LabelField
-keep public class io.nearpay.sdk.data.models.LabelField.*
-keep public class io.nearpay.sdk.data.models.LocalizationField
-keep public class io.nearpay.sdk.data.models.LocalizationField.*
-keep public class io.nearpay.sdk.data.models.TransactionReceipt
-keep public class io.nearpay.sdk.data.models.TransactionReceipt.*
-keep public class io.nearpay.sdk.data.models.ReconciliationReceipt
-keep public class io.nearpay.sdk.data.models.ReconciliationReceipt.*
-keep public class io.nearpay.sdk.data.models.ServerErrorMessage
-keep public class io.nearpay.sdk.data.models.ServerErrorMessage.*
-keep public class io.nearpay.sdk.data.models.Session
-keep public class io.nearpay.sdk.data.models.Session.*
-keep public class io.nearpay.sdk.data.models.TransactionBannerList
-keep public class io.nearpay.sdk.data.models.TransactionBannerList.*
-keep public class io.nearpay.sdk.data.models.Merchant
-keep public class io.nearpay.sdk.data.models.Merchant.*

-keep public class io.nearpay.sdk.utils.enums.**.**
-keep public class io.nearpay.sdk.utils.enums.**
-keep public class io.nearpay.sdk.utils.enums.TransactionData.*
-keep public class io.nearpay.sdk.utils.enums.TransactionData

-keep public class io.nearpay.sdk.data.models.*
-keepclasseswithmembers public class io.nearpay.sdk.data.models.* {
   public *;
}

-keep public class io.nearpay.sdk.utils.enums.*
-keepclasseswithmembers public class io.nearpay.sdk.utils.enums.* {
   public *;
}

-keep public class io.nearpay.sdk.Environments

-keep public class io.nearpay.sdk.utils.listeners.*
-keepclasseswithmembers public class io.nearpay.sdk.utils.listeners.* {
   public *;
}

# AGP 8.0 enables R8 full mode by default - Keep generic signature of Retrofit's 2 Call, Response (R8 full mode strips signatures from non-kept items).
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response

# With R8 full mode generic signatures are stripped for classes that are not kept. Suspend functions are wrapped in continuations where the type argument is used.
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation

# hide the original source file name.
-renamesourcefileattribute SourceFile