-keep class com.microsoft.clarity.** {*;}

# To prevent the reflection used by the protobuf Lite runtime from failing due to obfuscation
# https://github.com/protocolbuffers/protobuf/blob/main/java/lite.md
-keep class * extends com.google.protobuf.GeneratedMessageLite {*;}

# Keep the AdvertisingIdClient class and its static getAdvertisingIdInfo(Context) method.
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    public static com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}

# Keep the nested Info class and the methods you invoke via reflection.
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    public java.lang.String getId();
    public boolean isLimitAdTrackingEnabled();
}

# Compose Capturer needed classes:

-keep class androidx.compose.ui.node.LayoutNode {
    void draw$ui_release(androidx.compose.ui.graphics.Canvas);
    void draw$ui_release(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.graphics.layer.GraphicsLayer);
    void draw$ui(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.graphics.layer.GraphicsLayer);
    androidx.compose.ui.Modifier getModifier();
    void setModifier(androidx.compose.ui.Modifier);
}

-keep class androidx.compose.ui.platform.AndroidComposeView {
    void measureAndLayout(boolean);
    androidx.compose.ui.semantics.SemanticsOwner semanticsOwner;
    androidx.compose.ui.node.LayoutNode root;
    ** dirtyLayers;
}

-keep class androidx.compose.ui.node.OwnedLayer {
    void invalidate();
}

-keep class androidx.compose.ui.semantics.SemanticsNode {
    boolean isTransparent$ui_release();
    boolean isTransparent$ui();
}
