-keep class com.google.gson.reflect.TypeToken
-keep class * extends com.google.gson.reflect.TypeToken
-keep public class * implements java.lang.reflect.Type


# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**

# A resource is loaded with a relative path so the package of this class must be preserved.
-adaptresourcefilenames okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz

# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*

# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
-dontwarn okhttp3.internal.platform.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**


# Gson: generic signatures and annotations must survive the consuming app's R8 pass
# (TypeToken generics, @SerializedName, @JsonAdapter). Most apps inherit these from the
# AGP defaults, but the SDK must not depend on the consumer's configuration.
-keepattributes Signature, RuntimeVisibleAnnotations, AnnotationDefault
-keepclassmembers class * {
    @com.google.gson.annotations.SerializedName <fields>;
}

#keep annotation
-keep @androidx.annotation.Keep class * { *; }
#keep default parameter
-keepclassmembers class kotlin.Metadata { *; }
# Scoped to the SDK package: a bare `class *` here would keep every method of every class
# in the CONSUMING APP, inflating its size and weakening its obfuscation.
-keepclassmembers class ai.asleep.asleepsdk.** {
    <methods>;
}