// Signature format: 4.0
package androidx.window {

  public final class WindowProperties {
    field public static final androidx.window.WindowProperties INSTANCE;
    field public static final String PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE = "android.window.PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE";
  }

}

package androidx.window.core {

  @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
  }

}

package androidx.window.embedding {

  public final class ActivityEmbeddingController {
    method public static androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
    method public boolean isActivityEmbedded(android.app.Activity activity);
    field public static final androidx.window.embedding.ActivityEmbeddingController.Companion Companion;
  }

  public static final class ActivityEmbeddingController.Companion {
    method public androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
  }

  public final class ActivityFilter {
    ctor public ActivityFilter(android.content.ComponentName componentName, String? intentAction);
    method public android.content.ComponentName getComponentName();
    method public String? getIntentAction();
    method public boolean matchesActivity(android.app.Activity activity);
    method public boolean matchesIntent(android.content.Intent intent);
    property public final android.content.ComponentName componentName;
    property public final String? intentAction;
  }

  public final class ActivityRule extends androidx.window.embedding.EmbeddingRule {
    method public boolean getAlwaysExpand();
    method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
    property public final boolean alwaysExpand;
    property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
  }

  public static final class ActivityRule.Builder {
    ctor public ActivityRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters);
    method public androidx.window.embedding.ActivityRule build();
    method public androidx.window.embedding.ActivityRule.Builder setAlwaysExpand(boolean alwaysExpand);
  }

  public final class ActivityStack {
    ctor public ActivityStack(java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
    method public operator boolean contains(android.app.Activity activity);
    method public boolean isEmpty();
    property public final boolean isEmpty;
  }

  public final class EmbeddingAspectRatio {
    method public static androidx.window.embedding.EmbeddingAspectRatio alwaysAllow();
    method public static androidx.window.embedding.EmbeddingAspectRatio alwaysDisallow();
    method public static androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
    field public static final androidx.window.embedding.EmbeddingAspectRatio.Companion Companion;
  }

  public static final class EmbeddingAspectRatio.Companion {
    method public androidx.window.embedding.EmbeddingAspectRatio alwaysAllow();
    method public androidx.window.embedding.EmbeddingAspectRatio alwaysDisallow();
    method public androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
  }

  public abstract class EmbeddingRule {
  }

  public final class RuleController {
    method public void addRule(androidx.window.embedding.EmbeddingRule rule);
    method public void clearRules();
    method public static androidx.window.embedding.RuleController getInstance(android.content.Context context);
    method public java.util.Set<androidx.window.embedding.EmbeddingRule> getRules();
    method public static java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
    method public void removeRule(androidx.window.embedding.EmbeddingRule rule);
    method public void setRules(java.util.Set<? extends androidx.window.embedding.EmbeddingRule> rules);
    field public static final androidx.window.embedding.RuleController.Companion Companion;
  }

  public static final class RuleController.Companion {
    method public androidx.window.embedding.RuleController getInstance(android.content.Context context);
    method public java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
  }

  public final class SplitController {
    method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
    method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
    method public boolean isSplitSupported();
    method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
    field public static final androidx.window.embedding.SplitController.Companion Companion;
  }

  public static final class SplitController.Companion {
    method public androidx.window.embedding.SplitController getInstance(android.content.Context context);
  }

  public final class SplitInfo {
    method public operator boolean contains(android.app.Activity activity);
    method public androidx.window.embedding.ActivityStack getPrimaryActivityStack();
    method public androidx.window.embedding.ActivityStack getSecondaryActivityStack();
    method public float getSplitRatio();
    property public final androidx.window.embedding.ActivityStack primaryActivityStack;
    property public final androidx.window.embedding.ActivityStack secondaryActivityStack;
    property public final float splitRatio;
  }

  public final class SplitPairFilter {
    ctor public SplitPairFilter(android.content.ComponentName primaryActivityName, android.content.ComponentName secondaryActivityName, String? secondaryActivityIntentAction);
    method public android.content.ComponentName getPrimaryActivityName();
    method public String? getSecondaryActivityIntentAction();
    method public android.content.ComponentName getSecondaryActivityName();
    method public boolean matchesActivityIntentPair(android.app.Activity primaryActivity, android.content.Intent secondaryActivityIntent);
    method public boolean matchesActivityPair(android.app.Activity primaryActivity, android.app.Activity secondaryActivity);
    property public final android.content.ComponentName primaryActivityName;
    property public final String? secondaryActivityIntentAction;
    property public final android.content.ComponentName secondaryActivityName;
  }

  public final class SplitPairRule extends androidx.window.embedding.SplitRule {
    method public boolean getClearTop();
    method public java.util.Set<androidx.window.embedding.SplitPairFilter> getFilters();
    method public int getFinishPrimaryWithSecondary();
    method public int getFinishSecondaryWithPrimary();
    property public final boolean clearTop;
    property public final java.util.Set<androidx.window.embedding.SplitPairFilter> filters;
    property public final int finishPrimaryWithSecondary;
    property public final int finishSecondaryWithPrimary;
  }

  public static final class SplitPairRule.Builder {
    ctor public SplitPairRule.Builder(java.util.Set<androidx.window.embedding.SplitPairFilter> filters);
    method public androidx.window.embedding.SplitPairRule build();
    method public androidx.window.embedding.SplitPairRule.Builder setClearTop(boolean clearTop);
    method public androidx.window.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(int finishPrimaryWithSecondary);
    method public androidx.window.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(int finishSecondaryWithPrimary);
    method public androidx.window.embedding.SplitPairRule.Builder setLayoutDirection(int layoutDirection);
    method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
    method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
    method public androidx.window.embedding.SplitPairRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
    method public androidx.window.embedding.SplitPairRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
    method public androidx.window.embedding.SplitPairRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float splitRatio);
  }

  public final class SplitPlaceholderRule extends androidx.window.embedding.SplitRule {
    method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
    method public int getFinishPrimaryWithPlaceholder();
    method public android.content.Intent getPlaceholderIntent();
    method public boolean isSticky();
    property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
    property public final int finishPrimaryWithPlaceholder;
    property public final boolean isSticky;
    property public final android.content.Intent placeholderIntent;
  }

  public static final class SplitPlaceholderRule.Builder {
    ctor public SplitPlaceholderRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters, android.content.Intent placeholderIntent);
    method public androidx.window.embedding.SplitPlaceholderRule build();
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(int finishPrimaryWithPlaceholder);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setLayoutDirection(int layoutDirection);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float splitRatio);
    method public androidx.window.embedding.SplitPlaceholderRule.Builder setSticky(boolean isSticky);
  }

  public class SplitRule extends androidx.window.embedding.EmbeddingRule {
    method public final int getLayoutDirection();
    method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInLandscape();
    method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInPortrait();
    method public final int getMinSmallestWidthDp();
    method public final int getMinWidthDp();
    method public final float getSplitRatio();
    property public final int layoutDirection;
    property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInLandscape;
    property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInPortrait;
    property public final int minSmallestWidthDp;
    property public final int minWidthDp;
    property public final float splitRatio;
    field public static final androidx.window.embedding.SplitRule.Companion Companion;
    field public static final int FINISH_ADJACENT = 2; // 0x2
    field public static final int FINISH_ALWAYS = 1; // 0x1
    field public static final int FINISH_NEVER = 0; // 0x0
    field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_LANDSCAPE_DEFAULT;
    field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_PORTRAIT_DEFAULT;
    field public static final int SPLIT_MIN_DIMENSION_ALWAYS_ALLOW = 0; // 0x0
    field public static final int SPLIT_MIN_DIMENSION_DP_DEFAULT = 600; // 0x258
  }

  public static final class SplitRule.Companion {
  }

}

package androidx.window.layout {

  public interface DisplayFeature {
    method public android.graphics.Rect getBounds();
    property public abstract android.graphics.Rect bounds;
  }

  public interface FoldingFeature extends androidx.window.layout.DisplayFeature {
    method public androidx.window.layout.FoldingFeature.OcclusionType getOcclusionType();
    method public androidx.window.layout.FoldingFeature.Orientation getOrientation();
    method public androidx.window.layout.FoldingFeature.State getState();
    method public boolean isSeparating();
    property public abstract boolean isSeparating;
    property public abstract androidx.window.layout.FoldingFeature.OcclusionType occlusionType;
    property public abstract androidx.window.layout.FoldingFeature.Orientation orientation;
    property public abstract androidx.window.layout.FoldingFeature.State state;
  }

  public static final class FoldingFeature.OcclusionType {
    field public static final androidx.window.layout.FoldingFeature.OcclusionType.Companion Companion;
    field public static final androidx.window.layout.FoldingFeature.OcclusionType FULL;
    field public static final androidx.window.layout.FoldingFeature.OcclusionType NONE;
  }

  public static final class FoldingFeature.OcclusionType.Companion {
  }

  public static final class FoldingFeature.Orientation {
    field public static final androidx.window.layout.FoldingFeature.Orientation.Companion Companion;
    field public static final androidx.window.layout.FoldingFeature.Orientation HORIZONTAL;
    field public static final androidx.window.layout.FoldingFeature.Orientation VERTICAL;
  }

  public static final class FoldingFeature.Orientation.Companion {
  }

  public static final class FoldingFeature.State {
    field public static final androidx.window.layout.FoldingFeature.State.Companion Companion;
    field public static final androidx.window.layout.FoldingFeature.State FLAT;
    field public static final androidx.window.layout.FoldingFeature.State HALF_OPENED;
  }

  public static final class FoldingFeature.State.Companion {
  }

  public interface WindowInfoTracker {
    method public default static androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
    method public kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(android.app.Activity activity);
    field public static final androidx.window.layout.WindowInfoTracker.Companion Companion;
  }

  public static final class WindowInfoTracker.Companion {
    method public androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
  }

  public final class WindowLayoutInfo {
    method public java.util.List<androidx.window.layout.DisplayFeature> getDisplayFeatures();
    property public final java.util.List<androidx.window.layout.DisplayFeature> displayFeatures;
  }

  public final class WindowMetrics {
    method public android.graphics.Rect getBounds();
    method @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
    property public final android.graphics.Rect bounds;
  }

  public interface WindowMetricsCalculator {
    method public androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(android.app.Activity activity);
    method public androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(android.app.Activity activity);
    method public default static androidx.window.layout.WindowMetricsCalculator getOrCreate();
    field public static final androidx.window.layout.WindowMetricsCalculator.Companion Companion;
  }

  public static final class WindowMetricsCalculator.Companion {
    method public androidx.window.layout.WindowMetricsCalculator getOrCreate();
  }

}

