# CloudX SDK ProGuard Rules
# These rules are automatically applied to consuming applications

# === SDK Runtime ===
# Keep the CloudX runtime stable in minified publisher apps. The SDK uses
# Kotlin objects/sealed classes, reflection, and serialized models internally,
# and publishers should not need to maintain CloudX-specific keep rules.
-keep class io.cloudx.sdk.** { *; }

# === Third-party Dependencies ===
# OkHttp/Okio: Rules bundled automatically in JAR (R8 picks them up)

# === Warnings Suppression ===
-dontwarn org.slf4j.impl.StaticLoggerBinder

# === OMID (Open Measurement) SDK ===
# com.iab.omid.* classes are loaded via the local AAR. Keep them fully so
# minified publisher apps retain the viewability-measurement bridge.
-keep class com.iab.omid.** { *; }
-dontwarn com.iab.omid.**

# In case Applovin SDK is missing, this ignores the warning for the reflection
-dontwarn com.applovin.communicator.AppLovinCommunicator
-dontwarn com.applovin.communicator.AppLovinCommunicatorSubscriber
-dontwarn com.applovin.communicator.AppLovinCommunicatorMessage
-dontwarn com.applovin.sdk.AppLovinSdk

# In case LevelPlay SDK is missing, this ignores the warning for the optional ILRD provider
-dontwarn com.unity3d.mediation.LevelPlay
-dontwarn com.unity3d.mediation.impression.LevelPlayImpressionData
-dontwarn com.unity3d.mediation.impression.LevelPlayImpressionDataListener
