# ==========================================================================
# TapMind SDK – Consumer Rules
# ==========================================================================

-keepattributes Signature, *Annotation*, InnerClasses, EnclosingMethod

-keep class com.tapmind.tech.** { *; }

-keep @androidx.annotation.Keep class * { *; }
-keepclassmembers class * {
    @androidx.annotation.Keep *;
}

-keep class com.tapminds.adapter.TapMindsMediationAdapter { *; }
-keep class com.tapminds.adapter.TapMindsMediationAdapter$Companion { *; }

-keep interface com.tapminds.adapter.listener.** { *; }
-keep class com.tapminds.adapter.listener.** { *; }

-keep interface com.tapminds.ads.** { *; }
-keep class com.tapminds.ads.** { *; }

-keep class com.tapminds.tapmindsads.TapMindAdFormat { *; }
-keep class com.tapminds.tapmindsads.TapMindAdFormat$Companion { *; }

-keep class com.tapminds.tapmindsads.SDKState { *; }
-keep class com.tapminds.tapmindsads.TapMindSdkStateManager { *; }

-keep class com.tapminds.admob.AdMobManager {
    public static com.tapminds.admob.AdMobManager getInstance();
    public *;
}

-keep class com.tapminds.network.** { *; }
-keepclassmembers class com.tapminds.network.** { *; }

-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}

-dontwarn retrofit2.**
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**

-keep class kotlin.Metadata { *; }
-keepclassmembers class kotlin.Metadata { public <methods>; }
